「
タブが「縦書き」モードかチェックする
」を編集中
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
<div class="warningbox">'''2019/07/06 記''' (sukemaru) ---- このページのマクロ(組み込み関数/サンプルコード)は、Mery Ver. '''2.6.5 - 2.7.5''' でしか使えません。<br>Mery '''2.7.6''' 以降では、タブが縦書きモードであるかどうかの状態を<br>マクロから取得することはできなくなりました。<br>[[#メモ|>> メモ欄を参照]] </div> == 組み込み関数 CheckVertical() == /** * 組み込み関数 CheckVertical( objDocument ) * 引数に与えられた Document オブジェクトが「縦書き」モードかチェックする * 戻り値は 真偽値 true / false */ <syntaxhighlight lang="javascript"> function CheckVertical( objDocument ) { var isViewVertical; // Redraw = false; var d = objDocument || document, s = d.selection; var saved = d.Saved, readOnly = d.ReadOnly; var sx = ScrollX, sy = ScrollY; var act = s.GetActivePos(), anc = s.GetAnchorPos(); var ay = s.GetActivePointY( mePosView ); d.ReadOnly = false; d.Write( "\n" ); s.CharRight(); var dy = s.GetActivePointY( mePosView ); if ( dy == ay ) { isVertical = true; Status = "縦書き"; } else { isVertical = false; Status = "横書き"; } d.Undo(); s.SetActivePos( act ); s.SetAnchorPos( anc ); ScrollX = sx; ScrollY = sy; d.Saved = saved; d.ReadOnly = readOnly; return isViewVertical; } </syntaxhighlight> == 使い方 == '''例.''' 「ファイルを開いた時」のイベントマクロなどで、特定の条件で「縦書き」モードにする ① CheckVertical() 関数で、タブが「縦書き」モードかチェックする <syntaxhighlight lang="javascript"> var d = editor.ActiveDocument; var isVertical = CheckVertical( d ); // var arlertStr = isVertical ? "縦書き" : "横書き"; // Alert( arlertStr ); </syntaxhighlight> ② 条件にマッチしたら「縦書き」モードにする ※''editor.ExecuteCommandByID( 2238 )'' は「縦書き」の ON/OFF トグル切り替え機能であって「ON を指定する」ものではないので、「○○という条件に一致するタブが横書き表示だったときは → 縦書きに変更する」という書き方が必要になる <syntaxhighlight lang="javascript"> // 1. 編集モードが「青空文庫」なら「縦書き」モードにする // 2.「小説」フォルダ配下の TXT ファイルなら「青空文庫」×「縦書き」モードにする // ※「! isVertical」は「isVertical == false」と同義 var cond1 = ( d.Mode == "青空文庫" && ! isVertical ); var cond2 = ( d.FullName.match( /\\小説\\.*\.txt$/ ) && ! isVertical ); if ( cond1 ) { editor.ExecuteCommandByID( MEID_VIEW_VERTICAL = 2238 ); // 縦書き } else if ( cond2 ) { d.Mode == "青空文庫"; // 編集モードを変更 editor.ExecuteCommandByID( MEID_VIEW_VERTICAL = 2238 ); // 縦書き // (おまけ) ウインドウの右端で折り返し editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 ); } </syntaxhighlight> == メモ == [https://www.haijin-boys.com/software/mery/mery-2-7-5#14 Mery ベータ版 2.7.6] から'''マクロ機能の縦書きモード対応'''が部分的に仕様変更になった(縦書きモードのときの ''CharRight'' メソッドなどでのキャレットの移動方向が変更になった)ため、このページのマクロでは「タブが縦書きモードか」をチェックできなくなりました。
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク