エクセルで印をつけるマクロを作成したい

エクセルのマクロを使ってある条件の時に「印」を設定してみましょう。

例題)エクセルシート上に「男」「女」「夫」「妻」など数箇所に選択欄があってそれぞれのいずれかに「○」を設定してください。


そこで、マクロを使って作成してみたいと思います。

以下のようなマクロをVBE上にコーディングしてみてください。

Sub sirusi()
Dim a As Range
 If TypeName(Selection) = "Range" Then
  ActiveSheet.Shapes.AddShape(msoShapeOval, a.Left, _
      a.Top, a.Width, a.Height).Select
  Selection.ShapeRange.Fill.Visible = msoFalse
  a.Select
End Sub

以上です。これをVBE上に表記し、画面を閉じてください。

ATL+F8でマクロ一覧を開き、sirusiを選択します。この状態で「オプションボタン」などを選択し、ショートカットに任意の文字を入れておきます。ここでは「Y」あたりにしておきます。

エクセル上で適当にセルを選択してCtrl+Yを押下してみてください。そのセルに「○」が表示されるようになっているのを確認してください。





スポンサード リンク

スポンサード リンク

エクセルのマクロを使って計算してみましょう


箱の重さの計算結果をエクセル上に表示させるマクロを作成したいのですが、イメージ的には材料を数種類オプションボタンにて画面上で選択をさせて重さを計算させて表示させるということです。
重さは、高さ×幅×奥行きで計算させる予定です。

こういう計算式って簡単にエクセルのマクロで作成できるものなのでしょうか?
単純にエクセルの表にして計算結果を出そうとすると、材料全ての重さが表示されてしまうし余計なものが表示されてしまって、表示結果を見ている方としては分からなくなるんじゃないかと思っています。
このような事象を回避するためにはどのようなマクロを組んだらよいのでしょうか?

というような問題があるとします。この問題を解決するためにマクロを以下のように作成してみました。
材料は数種類ということでしたが、ここでは3つ選択できるようにしてみました。
エクセルの表上には、高さをA2のセルにいれ、幅をB2、奥行きをC2セルに入力するようにします。
また、オプションボタンのリンク先をD1セル、単位たたりの重量をE1〜3に設定・入力するようにしてみます。

Sub 重量計算()
W As Variant
L As Variant

H = Range("A2").Value   '高さ
L = Range("C2").Value   '奥行き

Select Case Range("D1").Value
Case 1
Case 2
MsgBox "箱の重さは" & H * W * L * Range("E2").Value & "です。", , "計算結果です。"
Case 3
MsgBox "箱の重さは" & H * W * L * Range("E3").Value & "です。", , "計算結果です。"
End Sub

以上、参考にしてみてくださいね。





エクセルのマクロを削除するには?


エクセルでマクロを使用していて(自分で作成したのでも、自動記録をしたものでもいいのですが)作りすぎてよく分からなくなってしまってはいませんか?

削除をするのに例えば「ツール」→「マクロ」→「マクロ」を選択したときに表示されるウィンドウ上で、必要が無いマクロを選んで「削除」ボタンを押した場合に「表示されていないブックのマクロは編集できません。[ウィンドウ再表示]コマンドを選択して、ウィンドウを表示してください。」というようなメッセージが表示されて削除できなかったりして一筋縄では行かないなんて思ってはいないでしょうか?

削除方法ですが、エクセルのシートを開いている状態で、メニュー「ツール」→「マクロ」→「Visual Vasic Editor」を選択し、モジュール画面を表示させます。(Alt+F11でも同じようにモジュール画面が開きますので試してみてください。)
そうすると展開された中に「MODULE1」というのがありますので「MODULE1の開放」を右クリックから選択してください。その他にも更にモジュールがありましたらMODULE1と同様の処理をして削除してください。
マクロの記録という自動記録処理を使ったマクロなら大抵はこれで削除できるはずです。