VBA自作サンプルプログラム集

こちらの記事では、VBAをこれから始めるにあたって、基本的な文法を習得出来るようサンプルを作成致しました。

メインメニューに戻る
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ
これからプログラミングを始める方へ
基本情報技術者試験トップへ

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

VBAをはじめる準備をしよう 

本的な入力で怒りと悲しみを発散しよう

RPG風変数?変数でダメージを与えた 

IFで攻撃レベル分岐

はじめてのForNextループで「う●こ」と寿命

ExcelVBAで「密です!!」ゲーム

多重ループで「地獄」で「はだか踊り」か? 

初めてのSelect Case文でパワハラBBAをやっつけろ!

Select Case文で色爆弾を投げて見よう

Do While Until前判断後判断

配列でデスリストと爆弾投下

メインメニューに戻る
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ
これからプログラミングを始める方へ
基本情報技術者試験トップへ

 

ExcelVBAで密です!ソーシャルディスタンス!!

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

新型コロナで「密です!」ゲームが流行していますね。
ExcelVBAで単純ながら密ですゲームみたいなものを作ってみました。

こんな感じにシートを用意して、ボタンを作ります。
ボタンは、「開発タブ→挿入」から作れます。
開発タブは、任意のタブを右クリックして、「リボンのユーザー設定」の
右側のメニューからチェックで表示できます。

では、このプロシージャに戻ります。
ボタン「密です!!」を押すと、

このように「人」が密集します。
3密ですね。

では、ボタン「ソーシャルディスタンス」を押します。

で、このように感覚を空けました。

各ボタンについて解説します。

●密です!!

Range(“A1:K11”) = “人”
で、セルA1からK11までの全てのセルに、
「人」を入れます。

●ソーシャルディスタンス

Cells.Clear
で、シートのお片付けをして、全てのセルをキレイにします。
その後、

Range(“a1”).Select
で、ホームポジションのA1を選択肢、
この位置を基準をして、2行2列置きに「人」を入れて、
間隔を保ちます。

行をi、列をjにします。
内側のForループでjを2つずつ増やし、
外側のループでiを2つずつ増やします。

コードはこんな感じです。
もう、緊急事態宣言が解除されて、
そんなにヒマではなくなったかもしれませんが、
ヒマで何かしたい方は、作ってみてください!

Sub 密です()
Range(“A1:K11”) = “人”
End Sub

Sub ソーシャルディスタンス()
Cells.Clear
Range(“a1”).Select
For i = 0 To 10 Step 2
For j = 0 To 10 Step 2
ActiveCell.Offset(i, j) = “人”
Next
Next
End Sub

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

多重ループで「地獄」で「はだか踊り」か??

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

今日この頃、新卒の時の会社(一般就労)で、
同僚からモラハラを受けたことの
フラッシュバックがハンパないです。
2001年(平成13年)ぐらいの大昔ですが、
私にとってはその時の苦痛が、鮮明に脳内でループしています!!

その同僚、今頃パフェでも食っていたら、
マジ、ムカツク!!

出来れば、

駅、ハローワーク、地獄、面接会場

などの「場所」で、

う◎こ漏らす、はだか踊りする、パンツ破れる、お●め納豆のオバサンみたいと言われる

などがあれば良いと思います。

それぞれの場所で、それぞれの「バチ」が当たれば良い。
つまり、

場所を「駅」で固定して、
「う◎こ漏らす」~「お●め納豆のオバサンみたいと言われる」
の、4つのバチ、

次に、場所を「ハローワーク」に固定して、
「う◎こ漏らす」~「お●め納豆のオバサンみたいと言われる」
の、4つのバチ、
・・・
と、4×4で16の災いが起これば良いと思います!!

この同僚は、お●め納豆のキャラクターソックリです。
それでも、本人は、イケてる女になる為に、
一生懸命でしたので、ちょっとだけ同情はしますが・・・。

この同僚が私にしたことは、
モラハラメールを送り付けたことと暴言です。
怖くて消してしまいましたが、今思うと、
データを取っておいて、訴えてやれば良かったと思います。

・あなたは誰々さんに迷惑をかけている
・無意識に迷惑をかけている
・あなたは何にも出来ない人だ
・負けている
・イケてない
・いいかげんにしてください

この様なことを言われたり、書かれたりしたので、
ちょっとだけお灸をすえてやろうと思いました。
特に、私の障害特性の疲れやすさについて、
色々理不尽なことを行ってきました。
訴えてやりたいのですが、証拠もないし、
プログラミングで解消するしかなさそうです・・・。

という訳で、お灸をすえる為に、多重ループやります。

お仕置きする「場所」を外側ループのカウンタ変数i、
「バチ」を内側ループのカウンタ変数j
にして、ぐるぐる回してやれ!!

イメージとしては、こんな感じの表を用意します。
表の見出しを「多重ループ」とします。

こういったプロシージャ―を作りました。


Sub 多重ループで地獄に堕ちろ()

Dim i As Integer, j As Integer
Worksheets(“多重ループ”).Activate

Range(“D1”).Select

For i = 1 To 4
For j = 1 To 4
ActiveCell.Value = Cells(i + 1, 1).Value & Cells(j + 1, 2).Value
ActiveCell.Offset(1, 0).Select
Next j

If i < 4 Then
ActiveCell.Offset(1, 0).Select
End If

Next i
End Sub

まず、「駅で」はセルA2です。
Cellsで表わすと、Cells(2,1)になります。
外側の変数は「i」なので、
i=1の時、Cells(i+1,1)になります。
Cellsは、(行、列)、(タテ、ヨコ)です。

内側のバチの最初は、「う◎こ漏らした」です。
これはセルB2です。
Cellsで表すとCells(j+1,2)になります。
「場所」と「バチ」を「&」で結合しています。

それでは、内側をjを1~4まで回わすので、
次はj=2です。
「はだか踊りした」は、j=2で、Cells(j+1,2)、つまり
Cell(3,2)になります。

その次は、「パンツ破れた」で、j=3、Cells(j+1,2)つまり、
Cells(4,2)です。

内側ループ、最後は
「お●め納豆のオバサンみたいと言われた」なので、
j=4、Cells(j+1,2)、つまり、
Cells(5,2)です。

4まで行ったら、外側の場所を、
「ハローワーク」に移動します。

こうやって、内側を速く回して、
外側をゆっくり固定しながら回す、
というイメージでグルグル回していきます。

代入する側のセルは、黄色い所です。
これを1つずつ下に下げていきます。
ActiveCell.Offset(1,0).Selectで、
Offsetを使って、相対的に移動します。

場所が「駅」から「ハローワーク」に移動する時、
1つ行を空けます。

最後だけ、ちょっと注意ですが、
IF文を使っていますね。
これは外側の変数が最後の「面接会場」の時だけ、
下に移動するセルを調整しています。
これは、言葉で伝えるとややこしいので、
コメントアウトしてみたり、実際にコーディングして、
感覚的にあ~、なるほどって感じで良いかもです。

実行結果です。

黄色いセルから下へお灸をすえられました。
お疲れ様でした。
今日は、ここまでです。

これ、お●め納豆のキャラに似ている本人が見ていたら笑えるな~~

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

初めてのSelectCaseによる条件分岐

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

今日は、初めてのSelectCaseによる条件分岐をやります。

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

向こうから、パワハラBBAがやってきました!
以下の武器を投げて攻撃します。

1黒板けし
2唐辛子入り目薬
3トイレのスッポンすっぽん
4バカボンの下駄

プロシージャ―はコチラ

Sub 初めての条件分岐でパワハラBBAをやっつけろ()

Dim 武器 As Integer

武器 = InputBox(“1:黒板消し” _
& vbCrLf & “2:唐辛子入り目薬” _
& vbCrLf & “3:便所掃除用スッポンすっぽん” _
& vbCrLf & “4:バカボンの下駄”, “パワハラBBAを何で攻撃しますか?”)

Select Case 武器

Case 1:
MsgBox “パワハラBBA:” _
& vbCrLf & “「ゴホッゴホっ。ゲホツげほ」”

Case 2:
MsgBox “パワハラBBA:” _
& vbCrLf & “「ぎゃ~~☆@!?@**~~」”

Case 3:
MsgBox “パワハラBBA:” _
& vbCrLf & “「いや~~ん、鼻が曲がる」”

Case 4:
MsgBox “パワハラBBA:” _
& vbCrLf & “「アタシ、バカ田大学行こうかしら。偏差値丁度良さそうヨ」”

Case Else
MsgBox “1~4を入れてね”

End Select

End Sub

1~4を入力すると、それぞれの武器が投げられ、
パワハラBBAを攻撃します。

例えば、「4」を押すと、
バカボンの下駄をBBAに投げつけることが出来ます。

インプットボックスに「4」と入力します。


これでバカボンの下駄を投げられます。

投げると、BBAがおかしなことを言います。

バカ田大学の偏差値は高いのだ。
でも、BBAはバカだから入れるのだ。
バカ田大学に入学して、人生やりなおしてね。

改行は、「vbCrLf」を使っています。
「&」で結合することで、文字列を改行させられます。

コードを改行する時は、
「 _」(半角スペースと半角アンダースコア)を使います。
アンダースコアは、[Shift]キーと、[ろ](キーボードの右下)を
一緒に押します。
これで、改行しても、エラーになりません。

因みにこのパワハラBBAが私にしたことは、

● 新しく入った人に、私(このブログの製作者)とは関わるなと言って、
職場で孤立させた
● 「仕事はない!」といって、仕事を与えず放置
● 仕事を与えない一方で、残業はさせた
● 個室でネチネチ説教した

といった、陰湿なパワハラをしていました。
2013年ぐらいにそのパワハラを受けていました。
BBAがどうなったのか知りません。


う◎こでも踏んでくれ!!

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

配列でデスリストと爆弾投下

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

今日は、憎たらしいヤツらを、
デスノートならぬ、デスリストという
配列に格納して、イミディエイトウィンドウを
デスノートに見立てて書き出していきます。

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

このような名前を用意します。
配列名は「汚名前」を使います。
憎たらしいヤツいっぱいいて、
一人ひとりに変数を定義するの、
面倒だから、「汚名前」という配列を
用意しました。

汚名前[0]=五木不利太郎
汚名前[1]=瀬久原次郎
汚名前[2]=丑三津土器三郎
汚名前[3]=氏煮画見四郎

配列は0から始まります。
この部屋番号みたいなものを、
添え字といいます。

配列に五木不利太郎~氏煮画見四郎までの
名前を格納して、それをイミディエイトウィンドウに
出力します。


Sub 配列1()
Dim 汚名前(3) As String, i As Integer
For i = 0 To 3
汚名前(i) = Worksheets(“デスリスト”).Cells(3 + i, 2).Value
Debug.Print 汚名前(i)
Next i

End Sub

出力結果です。

では次に、デスリストの配列に
格納されているヤツラに
いろいろな色の爆弾をぶつけて見ましょう。
Variant(バリアント型)という何でも入る型を使います。
段ボール箱に四次元ポケットの機能を付けたようなものです。

ここでも、配列は0から始まります。

インプットボックスに0から4までの数字を入力して、
爆弾を投下させます。

出力結果です。


Sub 配列2()
Dim 色爆弾 As Variant, 番号 As Integer
色爆弾 = Array(“赤”, “青”, “きいろ”, “緑”, “紫”)
番号 = InputBox(“赤:0、青:1、きいろ:2、緑:3、紫:4”, “どの色の爆弾 を投げますか?”)
MsgBox (色爆弾(番号) & “の爆弾を投下した!どっか~~ん☆★”)

End Sub

最後に、先ほどのデスリストを発展させます。
新たに、リストに「部李津古花子」も追加したい時、
自動的に追加になるようにします。

行の上端、下端、行数、このExcelの全ての行数を用意します。
スクロールして、スクロールして、ず~~~と下に、
全ての行数があります。
60000万ぐらいでしょうか。

そのず~~~と下から、上に向かって最初にぶつかるのが、
部李津古花子の行です。これは7行目で、「下端」です。
上端は、B1から最初にぶつかるのが、「汚名前」という見出しです。
+1すると、「五木不利太郎」の行になります。これが3行目です。

行数は、全部で5行で、配列は0から
始まるので、
7行目から3行目を引いた数が行数になります。


Sub 配列3()
Dim 汚名前() As String, i As Long, 上端 As Long, _
下端 As Long, 行数 As Long, このExcelの全ての行数 As Long
Worksheets(“デスリスト”).Activate
このExcelの全ての行数 = ActiveSheet.Rows.Count
下端 = Cells(このExcelの全ての行数, 2).End(xlUp).Row
上端 = Cells(1, 2).End(xlDown).Row
行数 = 下端 – 上端 – 1
ReDim 汚名前(行数)
For i = LBound(汚名前) To UBound(汚名前)
汚名前(i) = Worksheets(“デスリスト”).Cells(上端 + i + 1, 2).Value
Debug.Print 汚名前(i)
Next i

End Sub

実行すると、こうなります。

LBoundは一番小さい番号、UBoundは一番大きい番号です。

今日はここまで。
お疲れ様でした(=^・^=)

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

Do While Until前判断後判断

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

4つのループを見ていきます。

こんな感じの画面を用意します。

● 1つ目:セルの内容が「チャラ男」である間は
ナイフでぶっ刺して「×」を付けてやっつける。
条件判断は【前】

● 2つ目:セルの内容が「チャラ男」である
間はナイフでぶっ刺して「×」を付けてやっつける。
条件判断は【後 (ナイフの扱いに慣れていない人) 】

● 3つ目:セルの内容が「宝石箱」が現れるまで、
ナイフを振り回して「×」を付けてやっつける。
条件判断は【前】

● 4つ目:セルの内容が「宝石箱」が現れるまで、
ナイフを振り回して「×」を付けてやっつける。
条件判断は 【後 (ナイフの扱いに慣れていない人) 】

まずは1つ目最初。

● 1つ目:セルの内容が「チャラ男」である
間はナイフでぶっ刺して「×」を付けてやっつける。
条件判断は【前】

最初に、セル(3,4)つまり、
D列3行の値が「チャラ男」かどうか
判断します。

チャラ男ですので、「×」でやっつけます。
Offsetで一つ右に移動します。
そこでもセルの値がチャラ男かどうか
判断します。

その繰り返しで、
最後のチャラ男までやっつけます。


Sub ループWhile前判断()
  Cells(3, 4).Select
  Do While ActiveCell.Value = “チャラ男”
  ActiveCell.Value = “×”
  ActiveCell.Offset(0, 1).Select
 Loop

End Sub

こんな感じでやっつけられました。

● 2つ目:セルの内容が「チャラ男」である間は
ナイフでぶっ刺して「×」を付けてやっつける。
条件判断は「後」

「後」判断は【ナイフの扱いに慣れていない人】を
イメージして下さい。
「チャラ男」かどうか判断しないで、
ナイフでぶっ刺してしまいます。
その後に「あ~~、チャラ男じゃなくて、
ブリッコだった」と気づいて後悔します。

つまり、最初にセル(6,4)、
D列6行を×にしてしまいます。
×にした後で条件判断をします。
”ブリッコ”ですので、条件に当てはまりませんが、
すでに×でやっつけられています。

Offsetで一つ右に移動します。
今度はその失敗でナイフの扱いに
慣れてきたので、
そこでもセルの値がチャラ男かどうか
判断出来ます。

その繰り返しで、
最後のチャラ男までやっつけます。

こんな感じでやっつけられました。


Sub ループWhile後判断()
  Cells(6, 4).Select
  Do
   ActiveCell.Value = “×”
   ActiveCell.Offset(0, 1).Select
  Loop While ActiveCell.Value = “チャラ男”

End Sub

ここからUntilに入ります。
ルールとして、
「宝石箱」は攻撃しません。
チャラ男、ブリッコ、オツボネおば、騙す人、悪い人達を
攻撃します。

● 3つ目:セルの内容が「宝石箱」が現れるまで、
「×」を付けてやっつける。
条件判断は前

最初に、セル(10,4)つまり、
D列10行の値が「宝石箱」かどうか
判断します。

まだ、「宝石箱」が現れていないので、
ナイフを振り回して「×」でやっつけます。
Offsetで一つ右に移動します。

移動してもまだ、「宝石箱」になっていないので、
やっつけます

その繰り返しで、
最後に「宝石箱」になった所で攻撃をやめます。

こんな感じでやっつけられました。


Sub ループUntil前判断()
Cells(10, 4).Select
Do Until ActiveCell.Value = “宝石箱”
ActiveCell.Value = “×”
ActiveCell.Offset(0, 1).Select
Loop

End Sub

最後です。

● 4つ目:セルの内容が「宝石箱」が現れるまで、
「×」を付けてやっつける。
条件判断は後

条件判断が「後」なので、またまた
【ナイフの扱いに慣れていない人】になります。

セル(13,4)つまり、
D列13行の値が「宝石箱」かどうか
判断します。

宝石箱はやっつけないというルールですが、
扱いに慣れていない為、最初の宝石箱を
やっつけてしまいます。

そこで、あ~~失敗したと後悔します。
同じ失敗をしないように、気を付けた所で、
次に進んで、


まだ、次の「宝石箱」になっていないので、
「×」でやっつけます。
Offsetで一つ右に移動します。
移動してもまだ、「宝石箱」になっていないので、
やっつけます

その繰り返しで、
最後に「宝石箱」になった所で攻撃をやめます。


Sub ループUntil後判断()
  Cells(13, 4).Select
  Do
  ActiveCell.Value = “×”
   ActiveCell.Offset(0, 1).Select
   Loop Until ActiveCell.Value = “宝石箱”
End Sub

お疲れ様でした。
今日はここまでです。

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

はじめてのForNextループで、「う●こ」と「寿命」

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

今日は、ループを使って、
イジメやパワハラをする人を、
懲らしめてやりましょう!

まず、アイツにう●こを踏ませます。
う●こは、1~10とだんだん増えていきます。
この、増えて行ったりするのに「i」という
変数を使います。
慣習的に、ループカウンタにはiとかjを使います。
1から10まで、う●こがグルグル回りながら
増えていくイメージです。

Excelシートに新しいシートを追加して、
「はじめてのループ」という名前を付けます。
このシートも、Sheet1とかも、オブジェクトと言って、
Excelの部品です。
では、早速書いていきます。


Sub ループ1()

Dim i As Integer, アイツ As String
Worksheets(“はじめてのループ”).Range(“A1”).Select
アイツ = InputBox(“う●こ踏ませるヤツの名前を入力”)

For i = 1 To 10
ActiveCell.Value = アイツ & “は、” & i & “このう●こ踏んだ”
ActiveCell.Offset(1, 0).Select
Next i
End Sub

このプログラムをボタンに登録します。
位置は、F列ぐらいにします。
ボタンは、Excelシートの、
開発タブ → 挿入 → フォームコントロール
から作成します。

アイツに例えば、
「五木不利太郎」と入れて見ます。

すると、1から10までのう●こをカウントして、
セルを1つ下に移動させます。
実行すると、こんな感じです。

1つずつ、う●こが増えていきましたが、
今度は、2つずつ増やして、アイツに奇数分の
う●こを踏ませます。
for i=1 to 10のあとに、
Step 2と記述します。


Sub ループ2()

Dim i As Integer, アイツ As String
Worksheets(“はじめてのループ”).Range(“A12”).Select
アイツ = InputBox(“う●こ踏ませるヤツの名前を入力”)

For i = 1 To 10 Step 2
ActiveCell.Value = アイツ & “は、” & i & “このう●こ踏んだ”
ActiveCell.Offset(1, 0).Select
Next i
End Sub

ループ1の横にボタンを作成・登録して、実行します。
こんな感じに2つずつ増えていますね。

では、今度はアイツの寿命を1ずつ減らしましょう。
考え方としては、Stepの後に、
「-1」ずつ減らすイメージです。


Sub ループ3()
Dim i As Integer, アイツ As String

Worksheets(“はじめてのループ”).Range(“A18”).Select
アイツ = InputBox(“寿命カウントするヤツの名前を入力”)

For i = 10 To 0 Step -1
ActiveCell.Value = アイツ & “の寿命は、あと” & i & “年”
ActiveCell.Offset(1, 0).Select
Next i


ActiveCell.Value = アイツ & “はもう、●んでいる”
ActiveCell.Offset(1, 0).Select
End Sub

これも、ボタンを作って実行します。


スッキリしましたか?
最後にアイツを葬ってやるために、
シートをキレイに消しましょう。


Sub ワークシートはじめてのループをキレイにする()
Worksheets(“はじめてのループ”).Cells.Clear
Range(“A1”).Select
End Sub

最後に、ホームポジションである、
セルA1に戻ります。

お疲れ様でした。
今日はここまでです。

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

IFで攻撃レベル分岐

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

レベル80以上であれば、アイツを倒せる!!
という、プログラムを作ります。


Sub If文1()
Dim アイツ As String, 攻撃レベル As Integer
アイツ = InputBox(“アイツの名前を入力しよう”)
攻撃レベル = InputBox(“1~100までのレベルを入れよう”)
If 攻撃レベル >= 80 Then
MsgBox アイツ & “はもう、●んでいる”
End If
End Sub

と入力して、

1から100までのレベルを入力します。
85と入力します。

このように表示されました。

しかし、80未満の場合、
何も出ないですよね。
そこで、
まだ倒せていないよ、というメッセージを表示させます。
「少しだけくたばった」にします。


Sub If文2()
Dim アイツ As String, 攻撃レベル As Integer
アイツ = InputBox(“アイツの名前を入力しよう”)
攻撃レベル = InputBox(“1~100までのレベルを入れよう”)
 If 攻撃レベル >= 80 Then
  MsgBox アイツ & “はもう、●んでいる”
  Else
MsgBox アイツ & “は少しだけくたばった”
End If
End Sub

実行してみます。

70を入れて見ます。

アイツは、少しだけくたばりました。

さらに、80未満だが、60以上だと、
「もう少しでくたばるぞ!!」という
メッセージを表示させます。


Sub If文3()
Dim アイツ As String, 攻撃レベル As Integer
アイツ = InputBox(“アイツの名前を入力しよう”)
攻撃レベル = InputBox(“1~100までのレベルを入れよう”)
If 攻撃レベル >= 80 Then
MsgBox アイツ & “はもう、●んでいる”
ElseIf 攻撃レベル >= 60 Then
MsgBox “あと少しで” & アイツ & “はくたばるぞ!!”
Else
MsgBox アイツ & “は少しだけくたばった”
End If
End Sub

60以上、80未満である、70を入れて見ます。

と、表示されました。

では、最後に、イジメやパワハラをするアイツだったら、
攻撃して、そうでなければ普通に挨拶を
するプログラムを作りましょう。


Sub If文4()
Dim アイツ As String, 歩いてくる人 As String, 攻撃レベル As Integer
アイツ = InputBox(“アイツの名前を入力しよう”)
歩いてくる人 = InputBox(“歩いてくる人の名前を入力しよう”)
If 歩いてくる人 = アイツ Then
MsgBox アイツ & “!!ドンドンバキュ~~ン☆☆”
Else
MsgBox 歩いてくる人 & “さん、こんにちは”
End If
End Sub

お疲れ様です。
今日は、ここまでです。

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

Select case文で色爆弾を投げて見よう

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

IF文で、2つの処理に分けましたが、
流石に7つの処理に多分岐するとなると、
IF、IF、IF・・・・
と、面倒になりそうですね。

それでは、イジメ・パワハラをしてくる
アイツを、赤い爆弾でやっつけたい、
青、きいろ、緑、ピンク・・・・と
色を分けてやっつけたい時には、どうしたら良いか。
Select case 文を使います。

まず、その前に、シートを新しく作って、
そのシートに、
「いろいろばくだん」と名付けます。

シートはExcel内の部品であり、それをオブジェクトというと、
ざっくり抑えて下さい。、

爆弾の色は、ボムカラーという変数を使います。
「赤、青、きいろ、ピンク、緑、紫、オレンジ」の7色の
爆弾を投げるという、分岐処理になります。

ワークシートの色を7色から選択して、塗りつぶします。
フォントサイズを30と、デカ文字に、
太字にします。

「赤、青、きいろ、ピンク、緑、紫、オレンジ」以外の
色が入力されたら、7色のうちのいずれかを入力する様に、
メッセージを出します。

最後に、セルを1つ下にします。

では、作ってみましょう。

チョット長いですが、
ここから~~~

Sub いろいろばくだん()

Dim アイツ As String, ボムカラー As String
アイツ = InputBox(“憎たらしいヤツの名前を入れよう”)
ボムカラー = InputBox(“赤、青、きいろ、ピンク、緑、紫、オレンジ”)

Select Case ボムカラー
  Case “赤”
  Worksheets(“いろいろばくだん”).Cells.Interior.Color = vbRed

  Case “青”
  Worksheets(“いろいろばくだん”).Cells.Interior.Color = vbBlue

  Case “きいろ”
  Worksheets(“いろいろばくだん”).Cells.Interior.Color = vbYellow

  Case “ピンク”
Worksheets(“いろいろばくだん”).Cells.Interior.Color = vbMagenta

  Case “緑”
Worksheets(“いろいろばくだん”).Cells.Interior.Color = vbGreen

  Case “紫”
Worksheets(“いろいろばくだん”).Cells.Interior.Color = RGB(200, 0, 255)

Case “オレンジ”
   Worksheets(“いろいろばくだん”).Cells.Interior.Color = RGB(255, 200, 0)


Case Else


MsgBox “赤、青、きいろ、ピンク、緑、紫、オレンジの色を入れよう”

End Select

Worksheets(“いろいろばくだん”).Range(“A1”).Select
With Selection.Font
.Size = 30
.Bold = True
End With


ActiveCell.Value = アイツ & “は、” & ボムカラー & “色の爆弾でほろびた”
ActiveCell.Offset(1, 0).Select

End Sub


~~ここまで

ここまで出来たら、
シートにボタンを作っておくと便利です。


ボタンは、Excelシートの開発 → 挿入 →
フォームコントロールのボタンマークで、
マクロ「いろいろばくだん」を登録します。

では、ポチってみましょう。

いつも通り、アイツの名前を入れます。
例えば、「五木不利太郎」と入れます。

色は「きいろ」にします。

すると、色が付き、セル選択が1つ下に移動します。

もしも、そのほかの色を入れると、
このようなメッセージボックスが出て、
セルの色は変わりません。

何色を入れてもやっつけられますので、
安心して下さい。

それでは今日は、ここまでです。

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

RPG風?変数でダメージを与えた

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

次は、変数についてです。
昔のRPG風のイメージで作ってみました。

※ この例題はフィクションです ※
■ いのちは大切に!
■ 犯罪はダメ!
■ 法律を守ろう!

変数は、箱をイメージして下さい。
Amazonの段ボール箱でも良いです。
注文した品物によって、段ボールの
大きさが変わりますよね。

数値でしたら、Integerという大きさの箱を使います。
Sサイズ、Mサイズ、Lサイズ、みたいなものでしょうか。
その箱に「回数」と書いた紙を貼るイメージで、
名前を付けます。
「回数」に入る数値をInputBoxで入力します。

さて、これから、パワハラ上司、いじめっ子を
殴りに行きます!!

■暴力はだめ!!

■ いのちは大切に!
■ 犯罪はダメ!
■ 実力付けて見返そう!


Sub 変数1()
 Dim 回数 As Integer
  回数 = InputBox(“ぶん殴る回数を入力”)
  MsgBox “アイツを” & 回数 & “回殴った”
End Sub


回数を5とします。
InputBoxに入力します。

Enterを押すと、

このようにメッセージボックスで、
回数が表示されます。

次に、文字を入れる箱を用意します。
箱の大きさは、Stringというサイズの箱を
用意します。
箱には「アイツ」と書いた紙を貼っておくイメージです。
InputBoxで、「アイツ」に入れる名前を「五木不利太郎」入力します。

回数には「678」を入れます。
結果をイミディエイトウィンドウに書き出します。


Sub 変数2()
 Dim アイツ As String, 回数 As Integer
 アイツ = InputBox(“キライなヤツの名前”)
 回数 = InputBox(“殴る回数”)

 Debug.Print アイツ & “を” & 回数 & “回殴った”
End Sub


次に、変数の演算をしてみましょう。
箱「キック」と箱「パンチ」の中身を
箱「回数」に入れます。
足し算です。


Sub 変数3()

Dim アイツ As String, パンチ As Integer, キック As Integer, 回数 As Integer
アイツ = InputBox(“キライなヤツの名前”)
パンチ = InputBox(“パンチの回数”)
キック = InputBox(“キックの回数”)

回数 = パンチ + キック
MsgBox アイツ & “に” & 回数 & “のダメージを与えた”
End Sub


名前、パンチ、キックの回数をそれぞれ入力すると、
足し算されます。

次に、Excelシートに書き出して見ましょう。


Sub 変数4()
Dim アイツ As String, パンチ As Integer, キック As Integer, 回数 As Integer

アイツ = InputBox(“キライなヤツの名前”)
パンチ = InputBox(“パンチの回数”)
キック = InputBox(“キックの回数”)


Range(“A1”).Value = アイツ & “を”
Range(“A2”).Value = パンチ & “回パンチして、”
Range(“A3”).Value = キック & “回キックして、”
Range(“A4”).Value = 回数 & “のダメージを与えた”


End Sub


と、Excelシートに書き出されますね。
今度は、Cells指定にします。

それと、もう少し大きな箱を用意します。
回数の箱に、もっとたくさんの商品を入れたいので、
サイズをLong型にします。
今まで、キックとパンチを加算してきましたが、
今度は乗算します。


Sub 変数5()
Dim アイツ As String, パンチ As Integer, キック As Integer, 回数 As Integer

アイツ = InputBox(“キライなヤツの名前”)
パンチ = InputBox(“パンチの回数”)
キック = InputBox(“キックの回数”)

回数 = パンチ * キック

Cells(8, 2).Value = アイツ & “を”
Cells(9, 3).Value = パンチ & “回パンチして、”
Cells(11, 5).Value = キック & “回キックして、”
Cells(12, 8).Value = 回数 & “のダメージを与えた”

End Sub


スッキリしましたか??
更に、「べき乗」にすると、もっとスッキリしますよ。

べき乗は、キーボード右上の「へ」の所にあります。
メッセージボックスに書き出して見ましょう。


Sub 変数6()
Dim アイツ As String, パンチ As Integer, キック As Integer, 回数 As Long

アイツ = InputBox(“キライなヤツの名前”)
パンチ = InputBox(“パンチの回数”)
キック = InputBox(“キックの回数”)

回数 = パンチ ^ キック

MsgBox 回数 & “のダメージを与えた”
End Sub


いよいよ最後です。
通過型の箱を用意します。大きさは、Currencyです。
「ふさい」と紙に書いて、箱に貼るイメージです。
文字列型の「ブラック企業」の箱も用意します。
私は、以前の職場の名前を入れました。


Sub 変数7()

Dim ブラック企業 As String, ふさい As Currency
ブラック企業 = InputBox(“ブラック企業名を入力”)
ふさい = InputBox(“負債額を入力”)


MsgBox ブラック企業 & “は、” & ふさい & “億の負債を抱えて倒産した!”
End Sub


色々あって、最初の障害者雇用の会社を退職したので、
スッキリしました!!

それでは、今日はここまでになります。
お疲れ様でした。

メインメニューに戻る
VBA自作サンプルプログラム集に戻る
基本情報技術者試験トップへ
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ