お気に入りフォント

2025年12月12日 (金) 23:31時点におけるUcky (トーク | 投稿記録)による版 (ソースコード)

概要

お気に入りのフォント、フォントサイズ、行間を登録しておいてポップアップメニューから一括で切り替えるマクロです。

動作環境

Mery Ver 3.2.6 以降で使用できます。

使用方法

  1. 好みのフォント、フォントサイズ、行間に設定する。
  2. マクロを実行してポップアップメニューの「現在の設定をクリップボードにセット」を選択する。
  3. マクロファイルを開き// 以下に設定を貼り付けるの下に設定を貼り付けて上書き保存する。

上記手順でお気に入りフォントを追加できます。必要に応じて繰り返してください。

ポップアップメニューの項目に表示されるテキストは下記のようにキーの部分(settings["…"])を変更することで変えられます。

// 以下に設定を貼り付ける
settings["コーディング用 1"] = {fontName: "Pending Mono", fontHeight: -15, lineSpace: 2};
settings["コーディング用 2 (小)"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -15, lineSpace: 0};
settings["コーディング用 2 (大)"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -18, lineSpace: 0};
settings["テキスト閲覧用"] = {fontName: "BIZ UDゴシック", fontHeight: -16, lineSpace: 6};

簡単なアイコンをあつまれ☆みんなのおもしろアイコンに投稿してます。ツール バーに追加して使用する場合など、よろしければご活用ください。

変更履歴

  • 2024-04-11
    • 初版

ソースコード

#fonticon = "\uE8D2", #4d82b8, #dddddd
#title = "お気に入りフォント"

// キーはポップアップメニューの項目に表示するテキスト。貼り付けた後に変更可
var settings = {};
// 以下に設定を貼り付ける


// キーはポップアップメニューの項目に表示するテキスト、値は実行する関数
var utilities = {};

utilities["現在の設定をクリップボードにセット(&S)"] = function () {
	editor.WriteSettings();

	var fontSizeByFontHeight = {
		"-8": "6",
		"-9": "7",
		"-10": "7.5",
		"-11": "8",
		"-12": "9",
		"-13": "10",
		"-14": "10.5",
		"-15": "11",
		"-16": "12",
		"-17": "13",
		"-18": "13.5",
		"-19": "14",
		"-20": "15",
		"-21": "16",
		"-22": "16.5",
		"-23": "17",
		"-24": "18",
		"-25": "19",
		"-26": "19.5",
		"-27": "20",
		"-28": "21",
		"-29": "22",
		"-30": "22.5",
		"-31": "23",
		"-32": "24",
		"-33": "25",
		"-34": "25.5",
		"-35": "26",
		"-36": "27",
		"-37": "28",
		"-38": "28.5",
		"-39": "29",
		"-40": "30",
		"-41": "31",
		"-42": "31.5",
		"-43": "32",
		"-44": "33",
		"-45": "34",
		"-46": "34.5",
		"-47": "35",
		"-48": "36",
		"-49": "37",
		"-50": "37.5",
		"-51": "38",
		"-52": "39",
		"-53": "40",
		"-54": "40.5",
		"-55": "41",
		"-56": "42",
		"-57": "43",
		"-58": "43.5",
		"-59": "44",
		"-60": "45",
		"-61": "46",
		"-62": "46.5",
		"-63": "47",
		"-64": "48",
		"-65": "49",
		"-66": "49.5",
		"-67": "50",
		"-68": "51",
		"-69": "52",
		"-70": "52.5",
		"-71": "53",
		"-72": "54",
		"-73": "55",
		"-74": "55.5",
		"-75": "56",
		"-76": "57",
		"-77": "58",
		"-78": "58.5",
		"-79": "59",
		"-80": "60",
		"-81": "61",
		"-82": "61.5",
		"-83": "62",
		"-84": "63",
		"-85": "64",
		"-86": "64.5",
		"-87": "65",
		"-88": "66",
		"-89": "67",
		"-90": "67.5",
		"-91": "68",
		"-92": "69",
		"-93": "70",
		"-94": "70.5",
		"-95": "71",
		"-96": "72"
	};

	var fontName = editor.ReadSettingString("Display", "FontName", "MS ゴシック");
	var fontHeight = editor.ReadSettingString("Display", "FontHeight", "-13");
	var lineSpace = editor.ReadSettingString("General", "LineSpace", "2");
	var topMargin = editor.ReadSettingString("Display", "TopMargin", "");

	var settingName =
		fontName + ", " + fontSizeByFontHeight[fontHeight] + ", " + lineSpace +
		(topMargin && ", " + topMargin);

	clipboardData.SetData("Text",
		"settings[\"" + settingName + "\"] = {fontName: \"" + fontName +
		"\", fontHeight: " + fontHeight + ", lineSpace: " + lineSpace +
		(topMargin && ", topMargin: " + topMargin) + "};"
	);
};

utilities["フォントの設定(&C)..."] = function () {
	// MEID_VIEW_FONT_CUSTOMIZE
	editor.ExecuteCommandByID(2169);
};

var popupMenu = CreatePopupMenu();

// 設定名をポップアップメニューに追加
var settingCount = 0;
for (var settingName in settings) {
	settingCount++;
	popupMenu.Add(
		// 最初の10項目まではアクセスキー(1~0)を追加
		settingCount <= 10 ? "&" + settingCount % 10 + " " + settingName : settingName,
		settingCount
	);
}

// ユーティリティ名をポップアップメニューに追加
popupMenu.Add("", 0, meMenuSeparator);
var utilityCount = 0;
for (var utilityName in utilities) {
	utilityCount++;
	popupMenu.Add(utilityName, settingCount + utilityCount);
}

var menuId = popupMenu.Track(mePosMouse);

if (menuId > settingCount) {
	utilities[popupMenu.GetText(menuId)]();
} else if (menuId !== 0) {
	editor.WriteSettings();

	// 選択された項目の設定
	// 最初の10項目までの場合は追加したアクセスキー部分を除去して取得
	var setting = menuId <= 10
		? settings[popupMenu.GetText(menuId).substring(3)]
		: settings[popupMenu.GetText(menuId)];

	editor.WriteSettingString("Display", "FontName", setting.fontName);
	editor.WriteSettingInteger("Display", "FontHeight", setting.fontHeight);
	editor.WriteSettingInteger("General", "LineSpace", setting.lineSpace);
	if (setting.hasOwnProperty("topMargin")) {
		editor.WriteSettingInteger("Display", "TopMargin", setting.topMargin);
	}

	editor.ReadSettings();
}
スポンサーリンク