- ベストアンサー
マクロの作成について
マクロ初心者です。 それぞれのセルに1,2,3と数字を入れ、それをマクロで、ショートカットキーによって数字を表示したり消したりする方法が知りたいのですが、どうすればできるのでしょうか。 マクロの記憶をする作業とショートカットキーのやりかたはわかります。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 下記コードはシート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
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 私には、ご質問の意図が良く分かりません。もし、マクロの勉強だったら、以下のようなマクロは、あまり勉強にはならないかもしれません。記録マクロをとって、それを設定用にしたほうがよいです。 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
お礼
ご回答ありがとうございました
- deepbluetk
- ベストアンサー率28% (2/7)
たとえばセル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を記述し、ショートカットを登録しましょう。
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました