• ベストアンサー

マクロの作成について

マクロ初心者です。 それぞれのセルに1,2,3と数字を入れ、それをマクロで、ショートカットキーによって数字を表示したり消したりする方法が知りたいのですが、どうすればできるのでしょうか。 マクロの記憶をする作業とショートカットキーのやりかたはわかります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

こんにちは。 下記コードはシート1の各セルに1~3が点在していると想定し sc1は2と3のフォント書式の色を白にして視覚的に見えなくしています。 sc2は1と3のフォント書式の色を白にして視覚的に見えなくしています。 sc3は1と2のフォント書式の色を白にして視覚的に見えなくしています。 qはリセットです。 意味合いが違えばm(__)m Sub sc1() '2と3を白 Worksheets(1).Cells.Select Selection.Font.ColorIndex = 0 Selection.Replace What:="2", Replacement:="2" _ , ReplaceFormat:=True Selection.Replace What:="3", Replacement:="3" _ , ReplaceFormat:=True Worksheets(1).Range("A1").Select End Sub Sub sc2() '1と3を白 ActiveSheet.Cells.Select Selection.Font.ColorIndex = 0 Selection.Replace What:="1", Replacement:="1" _ , ReplaceFormat:=True Selection.Replace What:="3", Replacement:="3" _ , ReplaceFormat:=True Range("A1").Select End Sub Sub sc3() '1と2を白 ActiveSheet.Cells.Select Selection.Font.ColorIndex = 0 Selection.Replace What:="1", Replacement:="1" _ , ReplaceFormat:=True Selection.Replace What:="2", Replacement:="2" _ , ReplaceFormat:=True Range("A1").Select End Sub Sub q() 'リセット ActiveSheet.Cells.Select Selection.Font.ColorIndex = 0 Range("A1").Select End Sub

e151e
質問者

お礼

ご回答ありがとうございました

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 私には、ご質問の意図が良く分かりません。もし、マクロの勉強だったら、以下のようなマクロは、あまり勉強にはならないかもしれません。記録マクロをとって、それを設定用にしたほうがよいです。 SetShortCutKey で、キーを設定するか、ツール-マクロ-マクロ**オプションで設定します。ただし、その場合は、マクロ本体(FontInVisible)は、個人用マクロブック(PEROSNAL.XLS) に登録しなければなりません。 通常、この種のマクロは、だいたいは、コマンドボタン(コントロールツール内)に入れて使います。その場合は、シートモジュールに登録となります。 ''標準モジュール 'ショートカット '--------------------------------- Sub SetShortCutKey()  ''設定用: Ctrl キー(^) + e  Application.OnKey "^e", "FontInVisible" End Sub Sub SetOffShortCutKey()  ''解除用  Application.OnKey "^e" End Sub '----------------------------------- Sub FontInVisible()   Dim c As Range   '本当は範囲を決めたほうがよい 例:Range("A1:A10")   'Selection は、マウスで選択した範囲という意味   With Selection     If StrComp(TypeName(Selection), "Range", 1) <> 0 Then Exit Sub     For Each c In .Cells       '1~3まで       If c.Value > 0 And c.Value < 4 Then         If c. = c.Interior.Color Then           c.Font.ColorIndex = 0 '色戻し         Else           '背景の色とあわせる           c.Font.Color = c.Interior.Color         End If       End If     Next   End With End Sub

e151e
質問者

お礼

ご回答ありがとうございました

回答No.1

たとえばセルA1,A2,A3に、数字1,2,3を入力してあるとします。 Alt+F11キーを押してVisualBasicEditorを開きます。 「挿入」メニューから「標準モジュール」をクリックして出てきたウィンドウに以下をこぴぺしてみてください。 Sub apdel1() If Range("a1") = "" Then Range("a1") = 1 Else: Range("a1") = "" End If End Sub エクセルに戻って、apdel1というマクロにショートカットを登録します。 同様にセルa2,a3についてもapdel2,apdel3などマクロ名を変えてVBAを記述し、ショートカットを登録しましょう。

e151e
質問者

お礼

ご回答ありがとうございました。