見出し画像

[入力フォームを Excel でデザイン]のマクロを解説

AccessのフォームをExcelでデザインするマクロの解説を行います。

使い方を知りたいは、下記のページで説明しています。

[画面設定]のメニューを作る

[画面設定]を行うには、色々な操作が必要になります。

画面設定のプレビュー表示
項目の追加、など

これらの操作を[メニュー]ボタンで表示します。

画像1

[日本語ローコード]を使ってマクロを書くと下記のようになります。

Sub メニュー()
  Dim wMenu  As String

  wMenu = "フォーム画面表示,項目の追加,項目位置を保存"

  n = f_メニュー("タイトル", wMenu, "選択してください", 0)
  If n = 0 Then Exit Sub
  '--- Exit ---

  '(メニュー実行)
  If n = 1 Then Call フォーム表示
  If n = 2 Then Call 項目を作る
  If n = 3 Then Call 項目位置を保存
End Sub

マクロ処理は、Sub ・・・ End Subの間に記述しています。
Sub ・・・ End Subを1つのサブルーチンと呼びます。

[Dim wMenu ・・・]
最初にこのサブルーチン(メニュー)内で使用する変数を宣言します。

[wMenu = ・・・]
変数 wMenu に、表示するメニュー名を代入します。
1行目と2行目はカンマで区切ります。

[n = f_メニュー(・・・]
日本語ローコード関数(f_メニュー)を実行します。
実行した結果は、変数 n に代入されます。

[IF n=0 ・・・]
メニューで何も選択されなかったら、このサブルーチン(メニュー)を終了します。(n の値が 0 の時)

[IF n=1 ・・・]
1番目のメニューが選択された場合は、サブルーチン(フォーム表示)を実行します。(n の値が 1 の時)

[IF n=2 ・・・]
2番目のメニューが選択された場合は、サブルーチン(項目を作る)を実行します。(n の値が 2 の時)

[IF n=3 ・・・]
3番目のメニューが選択された場合は、サブルーチン(項目位置を保存)を実行します。(n の値が 3 の時)

[項目の追加]のマクロ

[項目名]ラベル と [入力]テキストボックス を図形で追加する。

画像2

ラベル[項目名1~20]と入力枠[半角/指定なし]の図形を20個作成します。

Sub 項目を作る()
 Dim wNO   As Integer
 Dim wLeft As Single, wTop As Single, wWidth As Single, wHeight As Single
 Dim wSTR  As String
 Dim wTab  As Single
 
 '図形を消去 
 Call s_DeleteShape
 
 For wNO = 1 To 20
   wTab = Int((wNO - 1) / 10) * 350
   
   '丸四角
   wTop = (((wNO - 1) Mod 10)) * 30 + 15
   wLeft = wTab + 10
   wWidth = 100
   wHeight = 25
   wSTR = "項目名" & Trim(Str(wNO))
   Call s_CreateMaruLabel(wLeft, wTop, wWidth, wHeight, wNO)
   
   '四角
   wLeft = wTab + 120
   wWidth = 200
   wSTR = "半角/指定なし"
   Call s_CreateKakuBox(wLeft, wTop, wWidth, wHeight, wNO)
 Next wNO
 
 'A1セルを選択
 Range("A1").Select
End Sub

すべての[ソースコード]を下記(GitHub)に公開しています。