助けて下さい。

Excelにシートが多数あり、各シートに複数のチェックボックスが作成されています。

(例:□:英語、□:日本語、など)

これらを英語に訳さねばならないのですが、一括で「英語ー>English」「日本語ー>Japanease」と変換する方法はないでしょうか。Excelの検索機能では対象にならないようで、困っています。
宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

フォーム版ならこちらでいかがでしょうか?



Sub チェックボックス置換()
Dim rg As Range, cb As CheckBox
Set rg = Range("A1:A2") 'A1に置換前、A2に置換後の言葉をいれる
For Each cb In ActiveSheet.CheckBoxes
If InStr(cb.Caption, rg(1).Text) Then
cb.Caption = Replace(cb.Caption, rg(1).Text, rg(2).Text)
End If
Next
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます!!やってみます!結果を後ほど必ずアップします!

お礼日時:2017/03/21 10:21

使用されているチェックボックスがActiveXコントロールだという前提です。



マクロ中に、変換前後の文字列を追加(重複禁止)した上で
マクロを実行してください。

チェックボックスのオブジェクト名がCheckBoxXX (XXは数字)でない場合は
「If obj.Name Like "CheckBox*"」の部分を適宜変更してください。



Sub Sample()
  Dim ws As Worksheet
  Dim obj As Object
  Dim dic As Object
  Dim key As Variant

  Set dic = CreateObject("Scripting.Dictionary")

  ' ここに変換前後の文字情報を追加していく
  ' 左側が変換前、右が変換後
  dic("英語") = "English"
  dic("日本語") = "Japanese"

  Application.ScreenUpdating = False
  For Each ws In ThisWorkbook.Worksheets
    ws.Activate
    For Each obj In ActiveSheet.OLEObjects
      If obj.Name Like "CheckBox*" And dic.exists(obj.Object.Caption) Then
        obj.Object.Caption = dic(obj.Object.Caption)
      End If
    Next
  Next
  Application.ScreenUpdating = True
  Set dic = Nothing
  Set obj = Nothing
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます!!やってみます!結果を後ほど必ずアップします!

お礼日時:2017/03/21 10:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報