タブ位置をお手軽に設定するアドイン(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]をクリックしたり、[キャンセル]をクリックしたりすると、何事もなかったかのように処理を終了します。