タブ位置をお手軽に設定するアドイン(Word用)
タブ位置を気軽に設定するアドイン
これをもとに、アドイン化してみた。
コード
ごちゃごちゃなしでコードを全部載せる。
リスト1 標準モジュール
Public Sub タブ位置設定() Dim objDoc As Document Set objDoc = ActiveDocument Dim tmpStr As String tmpStr = InputBox( _ Prompt:="指定したいタブ位置(整数値)を「,」(半角カンマ)区切りで入力せよ。" _ & vbCrLf & _ "※小数値は、小数部分を丸めて整数値として扱います。", _ Title:="タブ位置の指定") '///ガード節その1' '///何も入力されなかったら処理を抜ける(キャンセルの場合も同じ)。' If tmpStr = "" Then Exit Sub '///ガード節その2' '///半角カンマが全くないのに、入力された値が数値として評価できない値だったら処理を抜ける。' If InStr(tmpStr, ",") = 0 And _ Not IsNumeric(tmpStr) Then Call makeUserSick("数字と半角カンマで入力せんかいぼけー!") Exit Sub End If '///ガード節その3' '///カンマ区切りで入力された値に、数値以外が入っていたら処理を抜ける。' Dim positionsArray As Variant positionsArray = Split(tmpStr, ",") Dim maxPositions As Integer maxPositions = UBound(positionsArray) + 1 Dim i As Integer For i = 1 To maxPositions If Not IsNumeric(positionsArray(i - 1)) Then Call makeUserSick("数字以外入れんなぼけー!") Exit Sub End If Next '///ここから処理の本体' '///一旦選択位置のタブをクリア。' Selection.ParagraphFormat.TabStops.ClearAll '///選択位置のフォントサイズを取得' Dim p As Single p = Selection.Font.Size '///タブを設定' For i = 1 To maxPositions With Selection.ParagraphFormat.TabStops .Add CInt(positionsArray(i - 1)) * p End With Next End Sub
説明はコード中にコメントとして入れたので、今回は説明は省略。
実行
こんなふうにタブを設定して実行する。
見づらいけど、インプットボックスに「5,10,15,20,25,30」と入力した。
このように、5文字区切りでタブ位置が設定された。
「段落」メニューから「タブ設定」を見ると、
バッチリ設定されている。
今度は、「5.5,10.5,15.5,20.5,25.5,30.5」と入力してみた。
(゚Д゚)ハァ? 四捨五入と五捨六入が交互に……。
「あ」とだけ入力すると、
煽られるw
今度は、「5,10,15,20,ち~んw,30」と入力してみる。
煽られるw
ちなみに、煽り用プログラムは、
このときのものです。
コード見たら分かると思いますが、何も入力せずに[OK]をクリックしたり、[キャンセル]をクリックしたりすると、何事もなかったかのように処理を終了します。