No.2ベストアンサー
- 回答日時:
>でシート名を配列に入れたあと、
プロシージャ外(モジュールの先頭)で変数宣言を行うことで、パブリック変数(共用変数)として利用できます。
ユーザーフォームモジュールの先頭で宣言すれば、ユーザーフォームのどのプロシージャからも参照できます。
標準モジュールにPublic 宣言を付けて変数を宣言すると、他のモジュールからも参照できる変数になります。
>この配列SheetName()のデータをユーザーフォームへ受け渡しがうまくいかないのです。
配列データ(シート名)を効率的にボタン名に設定できないと言うことでしょうか?
Controls("コントロール名").Caption = "AA"
のような方法があります。
コマンドボタンの名前が1から始まっていると、下記のように応用できます。
For i = 1 To Ubound(SheetName)
Controls("CommandButton" & i).Caption = SheetName(i)
Next i
や
UserForm_Initialize()で
For i = 1 To Worksheets.Count
Controls("CommandButton" & i).Caption = Sheets(i).Name
Next i
とすれば、フォーム起動時にボタンにシート名が設定できます。
ボタンの数が多くなった場合は、「擬似コントロール配列」という方法でボタンをグループ化できます。
(VBでは普通にコントロール配列が使るので、VBAでは擬似となっています。)
http://www.moug.net/skillup/opm/opm08-01.htm
参考URL:http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P …
返答遅くなりすみません;;
回答ありがとうございます。
擬似コントロール配列というのがあるのですね。
初めて聞きました。
今の私には少々レベルが高いように感じられますので、
今後の勉強にさせて頂きます。
情報ありがとうございました!
No.1
- 回答日時:
>WorkSheetの全てのシート名を入れるにはどうしたらいいのでしょうか?
目的が良く解りませんが、シート名の取得は簡単に可能です。
http://www2s.biglobe.ne.jp/~iryo/vba/VBA07.html
(参考7-1 ブック内複数シート名の取得)
>戻り値や引数でデータの受け渡しで行うにはどうしたらいいのでしょうか?
サブルーチン(引数を元に処理する・もしくは引数無し:値は返さない)
sub Work1(引数)
処理
end sub
呼出方法 call Work1(引数)
関数(引数を元に処理・もしくは引数無し:値を返す事が可能)
function Job1(引数)
処理
job1=○○ :関数名に戻り値を設定
end function
呼出方法
変数=Job1(引数)
この回答への補足
回答ありがとうございます。
補足させていただきますと、
For i = 1 To Worksheets.Count
SheetName(i) = Sheets(i).Name
Next i
でシート名を配列に入れたあと、この配列をユーザーフォームのコマンドボタンにリスト表示させたいのです。
この配列SheetName()のデータをユーザーフォームへ受け渡しがうまくいかないのです。
ユーザーフォームをあまり使ったことがないので、
この受け渡し方法がよくわかりません。
ちなみに配列も受け渡せますよね?
すみませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
VB.NETの配列にExcelから読み込...
-
エクセルでXY座標に並べられた...
-
Redim とEraseの違いは?
-
配列の中の最大値とそのインデ...
-
テキストボックの文字を一行ず...
-
VB6のメモリ解放に関して
-
C#でbyte配列から画像を表示さ...
-
Excel2010のinputboxで複数デー...
-
構造体配列内の文字列検索のよ...
-
vba フィルター 複数条件 3つ以...
-
free()関数の多用 と Segment...
-
2次元配列のソート
-
VBAのワークシート関数で配列の...
-
Dir関数で読み取り順を操作でき...
-
ASPで配列を作る方法
-
excel vbaの配列なんですが・・・
-
配列の中から最大値だけ取り出...
-
大量の変数を定義するにはどう...
-
グラフの「項目軸ラベルに使用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
Excel2010のinputboxで複数デー...
-
エクセルでXY座標に並べられた...
-
構造体配列の特定のメンバーをF...
-
定数配列の書き方
-
コンボボックスのインデックス...
-
OutOfMemoryExceptionの回避策...
-
Dir関数で読み取り順を操作でき...
-
CheckBoxの配列化
-
構造体配列内の文字列検索のよ...
-
COBOLの基本的な事なので...
-
Redim とEraseの違いは?
-
VBAで配列引数を値渡しできない...
-
2次元配列の初期値
-
配列の中の最大値とそのインデ...
-
大量の変数を定義するにはどう...
-
VB6からの移行したいけど、VB.N...
-
VB6のメモリ解放に関して
おすすめ情報