忍者ブログ

選択セルの文字をカッコでくくる

2021年01月06日
スマホから投稿

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
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字