選択セルの文字をカッコでくくる
2021年01月06日
スマホから投稿
wordの表で進捗管理をしていて、予定は日付をカッコでくくるルールにしているんだけど、いかんせんwordだとそのカッコがめんどくさい。
ってことで、wordの表で選択しているセルの文字列を()でくくるVBAを作ってみた。
「Selection.Cells(cnt).Range.Text =」で該当セルの文字列を変更できるけど、選択が解除されちゃって2箇所目でエラーが出る。
Selection.cellsを変数に格納して、ループさせて無事解決。
以下ソース。
wordの表で進捗管理をしていて、予定は日付をカッコでくくるルールにしているんだけど、いかんせんwordだとそのカッコがめんどくさい。
ってことで、wordの表で選択しているセルの文字列を()でくくるVBAを作ってみた。
「Selection.Cells(cnt).Range.Text =」で該当セルの文字列を変更できるけど、選択が解除されちゃって2箇所目でエラーが出る。
Selection.cellsを変数に格納して、ループさせて無事解決。
以下ソース。
Sub ◆表文字をカッコでくくる()
If Selection.Information(wdWithInTable) = False Then
MsgBox "表内にカーソルを置いてから実行してください。"
Exit Sub
End If
Dim buf As String, cnt As Long, tmpCells As Cells
Set tmpCells = Selection.Cells
For cnt = 1 To tmpCells.Count
If Selection.Information(wdWithInTable) = True Then
buf = tmpCells(cnt).Range.Text
tmpCells(cnt).Range.Text = "(" & Left(buf, Len(buf) - 2) & ")"
End If
Next cnt
End Sub
------------------------------------------------------------修正前
Sub ◆表文字をカッコでくくる()
Call WriteLog("◆表文字をカッコでくくる")
If Selection.Information(wdWithInTable) = False Then
MsgBox "表内にカーソルを置いてから実行してください。"
Exit Sub
End If
Dim buf As String, cnt As Long, Rbuf As Cells
Set Rbuf = Selection.Cells
For cnt = 1 To Selection.Cells.Count
If Selection.Information(wdWithInTable) = True Then
buf = Selection.Cells(cnt).Range.Text
Selection.Cells(cnt).Range.Text = "(" & Left(buf, Len(buf) - 2) & ")"
End If
Next cnt
'複数セルを選択して回すと、選択解除されるのでダメ
End Sub
PR
Comment