あるエクセルVBA参考書に出てくる以下のコードを読んでいると、
何となく意味は分かるのですが、ところどころに出てくるオブジェクト、
・txtNo
・txtDate
・txtCustomer
の意味が正確には良く分かりません。
どなたかご教示願います。VBAは、はじめてまだ1カ月の初心者です。
Private Sub UserForm_Initialize()
txtNo.Value = Sheets(1).Range("C4").Value + 1
txtDate.Value = Date
txtCustomer.SetFocus
End Sub
1.ユーザーフォームの初期化を宣言する
2.シート(1)のC4セルにtxtNoに1を加えていく設定をする
3.txtDateは常に現在の日付を設定する
4.フォーカスをtxtCustomerに移動する
5.おわり
※上記のコードはユーザーフォームから納品書の体裁になっているワークシートに
伝票番号・現在の日付・顧客企業を入力するサンプルから一部を抜粋しています。
使用機種
Windows Vista
Excel2007
以上、よろしくお願い申し上げます。
No.5ベストアンサー
- 回答日時:
>従って参考書の著者が任意で決めたオブジェクト名ということになるのでしょうか?
そういうことです。
オブジェクト名は自由に決めてかまいません。(一応、使える文字とか先頭文字の制約などの命名規約はありますが)
VB系のプログラミングでは慣習として、
・テキストボックスは頭にtxtを付ける、
・ラベルは頭にlblを付ける、
・チェックボックスは頭にchkを付ける、
というにように、名前を見るだけでどんなコントロールかが分かるようにしている人が多いです。
書籍でもそのように命名することを推奨しています。
私自身は、あとで見たときに自分だけが分かればいいと思っているので、そんな慣習は無視していますが。
たびたびのご回答ありがとうございます。
初心者でかつ独学でやってるせいか、
・テキストボックスは頭にtxtを付ける、
・ラベルは頭にlblを付ける、
・チェックボックスは頭にchkを付ける
という慣習は、初めて知りました。
オブジェクト名の使い方も含めて
大変助かりました。
No.4
- 回答日時:
imogasi
これらはフォームの上に貼り付けたコントロール(オブジェクト)の、多分テキストボックスのプロパティ・ウインドウを見れば
(オブジェクト名)のところや、ValueやTextのプロパティのところで、ここにセットされるのだと判るのではないですか
>意味が正確には良く分かりません
コントロールにつけた名前だから、作った人がそう名前をつけたというだけ。
全体的な意味や位置づけは、例題全体で、なにをするかが説明されないと、第3者には、判らない。説明者は、それぐらいで(他の説明部分をも含めて)判ると判断したのでしょう。
>・txtNo 何かの番号 例 伝票番号
・txtDate 何かの日付 例 売上日=本日のケース(Dateを代入しているので、即日入力の場合。余りありえないケース)
・txtCustomer 例 販売した顧客名とか、その顧客番号.か。txtなので顧客名か。
こんなことは例題の問題設定情況から自ずと判るものでしょう。
>UserForm_Initialize()
は初期化を宣言する、でしょう。宣言はべつのいみが強いので、初期化する、で良いのでは。
>シート(1)のC4セルにtxtNoに1を加えていく設定をする
C4のC列がどういうデータなのかこれだけでは判らない。連番を自動で取っているのかも知れない。
C4は前取引の伝票番号か?
ーー
何を疑問に思っているのか、読者に、伝わらない。
結局、学生などで、特に高校生、大學初年時など、社会経験が無いときに、実務的な場合の例題だとよく意味がわからないなどのことなら起こりえると思うが。そういう類のことなのかな。
ご回答ありがとうございます。
こちらのご回答は、NO.3のご回答と
同じように思います。
NO.3のご回答に対するお礼を
ご参照いただければ幸いです。
No.3
- 回答日時:
これらはフォームの上に貼り付けたコントロール(オブジェクト)の、多分テキストボックスのプロパティ・ウインドウを見れば
(オブジェクト名)のところや、ValueやTextのプロパティのところで、ここにセットされるのだと判るのではないですか
>意味が正確には良く分かりません
コントロールにつけた名前だから、作った人がそう名前をつけたというだけ。
全体的な意味や位置づけは、例題全体で、なにをするかが説明されないと、第3者には、判らない。説明者は、それぐらいで(他の説明部分をも含めて)判ると判断したのでしょう。
>・txtNo 何かの番号 例 伝票番号
・txtDate 何かの日付 例 売上日=本日のケース(Dateを代入しているので、即日入力の場合。余りありえないケース)
・txtCustomer 例 販売した顧客名とか、その顧客番号.か。txtなので顧客名か。
こんなことは例題の問題設定情況から自ずと判るものでしょう。
>UserForm_Initialize()
は初期化を宣言する、でしょう。宣言はべつのいみが強いので、初期化する、で良いのでは。
>シート(1)のC4セルにtxtNoに1を加えていく設定をする
C4のC列がどういうデータなのかこれだけでは判らない。連番を自動で取っているのかも知れない。
C4は前取引の伝票番号か?
ーー
何を疑問に思っているのか、読者に、伝わらない。
結局、学生などで、特に高校生、大學初年時など、社会経験が無いときに、実務的な場合の例題だとよく意味がわからないなどのことなら起こりえると思うが。そういう類のことなのかな。
imogasi様いつもご指摘ありがとうございます。
本件に関しては他の会員様からのご回答で
txtNo,txtDate等はオブジェクト名で
ユーザーホームからある程度、
任意に決められるということが分かりました。
>何を疑問に思っているのか、読者に、伝わらない。
他の会員様からもご指摘があったように
私の質問が質問になっていなかったみたいです。
経験豊富な社会人とは言えませんが、
VBAに関する知識や語彙も圧倒的に
不足していると思います。
限られた時間ではありますが、
VBAに関する知識や語彙も増やして
いきたいと思います。
No.2
- 回答日時:
その本には、
「ユーザーフォームの中にテキストボックスを配置する」
というようなことは書いていませんか?
txtNo、txtDate、txtCustomerはそのテキストボックスに付けた名前でしょう。
この回答への補足
nag0720様ご回答ありがとうございます。
>「ユーザーフォームの中にテキストボックスを配置する」
というようなことは書いていませんか?
はっきりとは書いてませんがそれらしきような
説明になっています。
nag0720様のアドバイスからダウンロードした
サンプルからVBEのユーザーフォームのプロパティ
を見てみると
・txtNo
・txtDate
・txtCustomer
というのは、プロパティのオブジェクト名で
これらの表記がありました。
従って参考書の著者が任意で決めた
オブジェクト名ということになるのでしょうか?
つまりは、
>txtNo、txtDate、txtCustomerはそのテキストボックスに
付けた名前でしょう。
ということですかね?
たびたびの質問誠に恐れ入りますが、ご確認よろしくお願い
申し上げます。
No.1
- 回答日時:
>ユーザーフォームから納品書の体裁になっているワークシートに
>伝票番号・現在の日付・顧客企業を入力するサンプルから一部を抜粋しています。
・txtNo->その伝票番号を入力するボックスの名前
・txtDate->その日付を入力するボックスの名前
・txtCustomer->その顧客企業コードを入力するボックスの名前
と言うことですが、質問の趣旨はこういう事なのか?
>の意味が正確には良く分かりません。
貴方の求める「意味」という意味が分かりません。
オブジェクトとその名前の対応という意味?
なぜその名前なのか?という意味?
命名規則の意味?
trajaa様ご回答ありがとうございます。
私が求めた「意味」について説明が
足りず、恐縮です。
私が回答を求めた「意味」とは、
・「オブジェクトとその名前の対応」
・「命名規則の意味」
です。
ただNO.2とNo.5のご回答から
txtNo,txtDate等はオブジェクト名で
ユーザーホームからある程度、
任意に決められるということが分かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
Excel VBAでマウスの左クリック...
-
VB6にて文字型変数の内容をオブ...
-
サブルーチンにオブジェクト名...
-
ExcelのシートをAccessで表示し...
-
カッコ付けのオブジェクト名を...
-
コードでオブジェクトを最前面に
-
【エクセルのマクロ】クリップ...
-
using文の使い方について
-
PowerpointVBAで指定のShapeオ...
-
Excel VBA でPictureBoxオブジ...
-
【エクセル】複数のTextBoxに共...
-
ユーザーフォームのインポート...
-
C#で画像をクリップボードへの...
-
エクセルのデータをwebフォーム...
-
「SHDocVw」の意味
-
VBAでフォームのコントロールの...
-
Bitmap.GetPixelより高速なもの
-
Accessのフォーム上にエクセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
エクセルVBAでセル番地を指定し...
-
日本語の文字化けを直す方法
-
Excel VBAでマウスの左クリック...
-
【エクセルのマクロ】クリップ...
-
現在アクティブになっているオ...
-
Accessのフォーム上にエクセル...
-
PowerpointVBAで指定のShapeオ...
-
文字列で小数点以下の0を削除し...
-
Excel2007 でのチェックボック...
-
エクセルのデータをwebフォーム...
-
【エクセル】複数のTextBoxに共...
-
コードでオブジェクトを最前面に
-
Imageコントロールにグラフを表...
-
ExcelのシートをAccessで表示し...
-
ユーザーフォームのインポート...
-
カッコ付けのオブジェクト名を...
-
Access からオブジェクトとして...
-
構造体の静的な初期化
おすすめ情報