「お気に入りフォント」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
SyntaxHighlightにcopyの追加
Ucky (トーク | 投稿記録)
30行目: 30行目:
== ソースコード ==
== ソースコード ==
<syntaxhighlight lang="javascript" copy>
<syntaxhighlight lang="javascript" copy>
#fonticon = "\uE8D2", #4d82b8, #dddddd
#title = "お気に入りフォント"
#title = "お気に入りフォント"


40行目: 41行目:
var utilities = {};
var utilities = {};


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


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


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


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


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


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


var popupMenu = CreatePopupMenu();
var popupMenu = CreatePopupMenu();
var settingCount = 0;


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


175行目: 174行目:
var utilityCount = 0;
var utilityCount = 0;
for (var utilityName in utilities) {
for (var utilityName in utilities) {
  popupMenu.Add(utilityName, settingCount + ++utilityCount);
utilityCount++;
popupMenu.Add(utilityName, settingCount + utilityCount);
}
}


var menuID = popupMenu.Track(mePosMouse);
var menuId = popupMenu.Track(mePosMouse);


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


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


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


  editor.ReadSettings();
editor.ReadSettings();
}
}
</syntaxhighlight>
</syntaxhighlight>

2025年12月12日 (金) 23:31時点における版

概要

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

動作環境

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();
}
スポンサーリンク