【エクセルVBA】あみだくじを自動作成する方法!線の本数を指定するだけ!

このページでは、以下の画像のようにエクセルシート上にあみだくじを自動作成する方法をご紹介していきます。

エクセルシート上にあみだくじを作成した様子

 

基本的には、縦線の本数、横線の本数を指定するだけで簡単に作成することができます。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

 あみだくじを作成するサンプルコード

さっそくですが、以下があみだくじを自動作成するサンプルコードです。

Sub make_amida()
    Dim num_b_line, num_v_line As Integer
    Dim p_line, w_line, offset_h, offset_w, 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をつかってシート上にあみだくじを自動作成する方法をご紹介しました。

職場での抽選作業なんかにぜひご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました