このページでは、以下の画像のようにエクセルシート上にあみだくじを自動作成する方法をご紹介していきます。
基本的には、縦線の本数、横線の本数を指定するだけで簡単に作成することができます。
それではさっそくやっていきましょう。
あみだくじを作成するサンプルコード
さっそくですが、以下があみだくじを自動作成するサンプルコードです。
Sub make_amida()
Dim num_b_line As Integer, num_v_line As Integer
Dim p_line As Integer, w_line As Integer
Dim offset_h As Integer, offset_w As Integer
Dim p_b_line As Integer
'情報の指定
num_v_line = 5 '縦棒の数
num_b_line = 20 '横棒の数
p_line = 50 '縦棒の間隔
w_line = 3 '線の太さ
offset_h = 50 'シート上端からの距離
offset_w = 100 'シート左端からの距離
p_b_line = 10 '各横棒の間隔
color_line = RGB(0, 0, 0) '線の色
l_line = num_b_line * p_b_line + 40 '縦線の長さ
'縦棒の作成
With ActiveSheet.Shapes
For i = 0 To num_v_line - 1
.AddConnector(msoConnectorStraight, i * p_line + offset_w, offset_h, i * p_line + offset_w, l_line + offset_h).Select
With Selection.ShapeRange.Line
.ForeColor.RGB = color_line
.Weight = w_line
.EndArrowheadStyle = msoArrowheadNone
End With
Next
End With
'横棒の作成
With ActiveSheet.Shapes
For i = 1 To num_b_line
pos_b_line = WorksheetFunction.RandBetween(1, num_v_line - 1) - 1
.AddConnector(msoConnectorStraight, pos_b_line * p_line + offset_w, offset_h + p_b_line * i + 20, pos_b_line * p_line + p_line + offset_w, offset_h + p_b_line * i + 20).Select
With Selection.ShapeRange.Line
.ForeColor.RGB = color_line
.Weight = w_line
.EndArrowheadStyle = msoArrowheadNone
End With
Next
End With
End Sub
このサンプルコードは内部で乱数を使用していますので、同じ設定で実行したとしても、毎度違った結果が出力されるようになっています。
ぜひ複数回実行して変化を確認してみましょう。
あみだくじ作成サンプルコードの使い方
次は先ほどのサンプルコートの使い方を簡単にご説明しておきます。
基本的にあなたがやることは
〇5行目の縦線の本数指定
〇6行目の横線の本数指定
だけでOKです。
その他のパラメータでは線の間隔であったり、線の色、太さを指定することができますので、ここはあなたのお好みに合わせて調整してみてください。
サンプルコードの実行結果の確認
それでは先ほどのコードを線の本数を変更しながら実行してみましょう。
まずは上記のコードとまったく同じである
num_v_line = 5 ‘縦棒の数
num_b_line = 20 ‘横棒の数
で実行してみます。
以下のように問題なく指定の線の本数で作成できていますね。
次は
num_v_line = 7 ‘縦棒の数
num_b_line = 21 ‘横棒の数
で実行してみます。
以下が実行結果です。
こちらも問題なく作成できていますね。
おわりに
というわけで今回は、エクセルVBAをつかってシート上にあみだくじを自動作成する方法をご紹介しました。
職場での抽選作業なんかにぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント