3の倍数か3がつく数字かどうかマクロ
今年、世界のナベアツ(渡辺鐘、渡辺あつむ)さんが「完全に売れかけて」(ご本人談)いました。「2008年ユーキャン新語・流行語大賞」にも「世界のナベアツ」としてノミネートされています。
ナベアツさんの代表的な持ちネタに「3の倍数と3が付く数字のときだけアホになります」というものがあります。このネタは好評を博し、お子さまを中心にして、各地で「さぁ~~ん!!」という声がこだましていたようです。
ナベアツさんは、1から順番にカウントしていき、普段は「40! オモロー!!」で締めくくっています。これを真似した場合、2桁の数字くらいならば、アホになるかどうか判別しやすいのですが、暗算が得意でなければ、カウントする数字が増すにつれ、だんだんと苦しくなってきます。
そこで、アホになるべきか否かを判別するMS-Excelのマクロを作ってみました。私自身数字が得意でなく、プログラミングの知識がかなり未熟で、なおかつ、お手軽に作ったものなので、非効率的だったり、不備がある可能性が高いです。ご容赦の上、ご利用くだされば幸いです。
――――――――――
1.セル"A1"に入力規則を設定します。
判別する数字を、Excelで普通に計算できる範囲に収め、入力エラーや指数表示にしたくないので、「入力規則」を設定します。
メニューから[データ]→[入力規則]→[設定]タブ
入力値の種類:整数
データ:次の値の間
最小値:1
最大値:2147483647
[エラーメッセージ]タブ
スタイル:停止
タイトル:入力エラー
エラー メッセージ:1~2,147,483,647の整数を入力してください
2.コマンドボタンの作成します。
[コントロール ツールボックス]ツールバーを表示して、[コマンドボタン]を選択。
任意の場所に「コマンドボタン」を作成。
[コマンドボタンのプロパティ]
オブジェクト名:q_three
Caption:1。2。…
3.[Visual Basic]ツールバーから、[Visual Basic Editor]を起動
以下のコードを入力します。
―――――
(General)(Declarations)
Sub call_three()
'3の倍数か3が付く数字の時
MsgBox "さぁ~~ん!!", vbOKOnly, "アホになる!"
End
End Sub
―――――
q_three Click
Private Sub q_three_Click()
Dim num As Long
Dim string_num As String
Dim i As Integer
num = Range("a1").Value
string_num = Str(num)
i = Len(string_num)
'3が付くかどうか
Do While i > 0
If "3" = Mid$(string_num, i, 1) Then
call_three
End If
i = i - 1
Loop
'3の倍数かどうか
If 0 = num Mod 3 Then
call_three
End If
'3の倍数でも3が付く数字でもない
MsgBox "…", vbOKOnly, "普通"
End Sub
―――――
4.実行します。
セル"A1"に1~2147483647までの整数を入力、確定してから、作成した[1。2。…]コマンドボタンをクリックします。
3の倍数と3がつく数字の時には左のメッセージボックス、そうではない時には右のメッセージボックスが表示されます。
[OK]ボタンをクリックすると、メッセージボックスが閉じます。再度、判定をする時は、セル"A1"に数値を入力→コマンドボタンをクリック、を行ってください。
入力値が不適切である場合は、以下のメッセージボックスが表示されます。
※【使用上の注意】※
このマクロの実行により発生した障害に対して、私は一切の責任を負いかねます。全て使用される方個人の責任に基づくものといたします。
本記事の内容を実行するに当たり、MS-Excel及びExcelVBAの基本操作に関するご質問には、お答え致しかねる場合があります。
以上、ご了承ください。
――――――――――
新語・流行語大賞の発表は、明日、12月1日です。今年を表わすことばがどれになるのか…、楽しみですね。
| 固定リンク
この記事へのコメントは終了しました。
コメント