dポイントプレゼントキャンペーン実施中!

あるエクセル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

以上、よろしくお願い申し上げます。
 

A 回答 (5件)

>従って参考書の著者が任意で決めたオブジェクト名ということになるのでしょうか?



そういうことです。


オブジェクト名は自由に決めてかまいません。(一応、使える文字とか先頭文字の制約などの命名規約はありますが)

VB系のプログラミングでは慣習として、
・テキストボックスは頭にtxtを付ける、
・ラベルは頭にlblを付ける、
・チェックボックスは頭にchkを付ける、
というにように、名前を見るだけでどんなコントロールかが分かるようにしている人が多いです。
書籍でもそのように命名することを推奨しています。

私自身は、あとで見たときに自分だけが分かればいいと思っているので、そんな慣習は無視していますが。
    • good
    • 0
この回答へのお礼

たびたびのご回答ありがとうございます。
初心者でかつ独学でやってるせいか、

・テキストボックスは頭にtxtを付ける、
・ラベルは頭にlblを付ける、
・チェックボックスは頭にchkを付ける

という慣習は、初めて知りました。

オブジェクト名の使い方も含めて
大変助かりました。

お礼日時:2011/06/19 09:42

imogasi


これらはフォームの上に貼り付けたコントロール(オブジェクト)の、多分テキストボックスのプロパティ・ウインドウを見れば
(オブジェクト名)のところや、ValueやTextのプロパティのところで、ここにセットされるのだと判るのではないですか
>意味が正確には良く分かりません
コントロールにつけた名前だから、作った人がそう名前をつけたというだけ。
全体的な意味や位置づけは、例題全体で、なにをするかが説明されないと、第3者には、判らない。説明者は、それぐらいで(他の説明部分をも含めて)判ると判断したのでしょう。
>・txtNo 何かの番号 例 伝票番号
・txtDate 何かの日付 例 売上日=本日のケース(Dateを代入しているので、即日入力の場合。余りありえないケース)
・txtCustomer 例 販売した顧客名とか、その顧客番号.か。txtなので顧客名か。
こんなことは例題の問題設定情況から自ずと判るものでしょう。
>UserForm_Initialize()
は初期化を宣言する、でしょう。宣言はべつのいみが強いので、初期化する、で良いのでは。
>シート(1)のC4セルにtxtNoに1を加えていく設定をする
C4のC列がどういうデータなのかこれだけでは判らない。連番を自動で取っているのかも知れない。
C4は前取引の伝票番号か?
ーー
何を疑問に思っているのか、読者に、伝わらない。
結局、学生などで、特に高校生、大學初年時など、社会経験が無いときに、実務的な場合の例題だとよく意味がわからないなどのことなら起こりえると思うが。そういう類のことなのかな。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

こちらのご回答は、NO.3のご回答と
同じように思います。

NO.3のご回答に対するお礼を
ご参照いただければ幸いです。

お礼日時:2011/06/19 10:07

これらはフォームの上に貼り付けたコントロール(オブジェクト)の、多分テキストボックスのプロパティ・ウインドウを見れば


(オブジェクト名)のところや、ValueやTextのプロパティのところで、ここにセットされるのだと判るのではないですか
>意味が正確には良く分かりません
コントロールにつけた名前だから、作った人がそう名前をつけたというだけ。
全体的な意味や位置づけは、例題全体で、なにをするかが説明されないと、第3者には、判らない。説明者は、それぐらいで(他の説明部分をも含めて)判ると判断したのでしょう。
>・txtNo 何かの番号 例 伝票番号
・txtDate 何かの日付 例 売上日=本日のケース(Dateを代入しているので、即日入力の場合。余りありえないケース)
・txtCustomer 例 販売した顧客名とか、その顧客番号.か。txtなので顧客名か。
こんなことは例題の問題設定情況から自ずと判るものでしょう。
>UserForm_Initialize()
は初期化を宣言する、でしょう。宣言はべつのいみが強いので、初期化する、で良いのでは。
>シート(1)のC4セルにtxtNoに1を加えていく設定をする
C4のC列がどういうデータなのかこれだけでは判らない。連番を自動で取っているのかも知れない。
C4は前取引の伝票番号か?
ーー
何を疑問に思っているのか、読者に、伝わらない。
結局、学生などで、特に高校生、大學初年時など、社会経験が無いときに、実務的な場合の例題だとよく意味がわからないなどのことなら起こりえると思うが。そういう類のことなのかな。
    • good
    • 0
この回答へのお礼

imogasi様いつもご指摘ありがとうございます。

本件に関しては他の会員様からのご回答で
txtNo,txtDate等はオブジェクト名で
ユーザーホームからある程度、
任意に決められるということが分かりました。

>何を疑問に思っているのか、読者に、伝わらない。

他の会員様からもご指摘があったように
私の質問が質問になっていなかったみたいです。

経験豊富な社会人とは言えませんが、
VBAに関する知識や語彙も圧倒的に
不足していると思います。

限られた時間ではありますが、
VBAに関する知識や語彙も増やして
いきたいと思います。

お礼日時:2011/06/19 10:04

その本には、


「ユーザーフォームの中にテキストボックスを配置する」
というようなことは書いていませんか?

txtNo、txtDate、txtCustomerはそのテキストボックスに付けた名前でしょう。

この回答への補足

nag0720様ご回答ありがとうございます。

>「ユーザーフォームの中にテキストボックスを配置する」
というようなことは書いていませんか?

はっきりとは書いてませんがそれらしきような
説明になっています。

nag0720様のアドバイスからダウンロードした
サンプルからVBEのユーザーフォームのプロパティ
を見てみると

・txtNo
・txtDate
・txtCustomer

というのは、プロパティのオブジェクト名で
これらの表記がありました。
従って参考書の著者が任意で決めた
オブジェクト名ということになるのでしょうか?

つまりは、

>txtNo、txtDate、txtCustomerはそのテキストボックスに
付けた名前でしょう。

ということですかね?

たびたびの質問誠に恐れ入りますが、ご確認よろしくお願い
申し上げます。

補足日時:2011/06/18 22:26
    • good
    • 0
この回答へのお礼

NO.2のご回答に対するお礼が遅くなり恐縮です。

補足質問に対してもご丁寧なご回答をいただき
ありがとございました。

お礼日時:2011/06/19 09:54

>ユーザーフォームから納品書の体裁になっているワークシートに


>伝票番号・現在の日付・顧客企業を入力するサンプルから一部を抜粋しています。

・txtNo->その伝票番号を入力するボックスの名前
・txtDate->その日付を入力するボックスの名前
・txtCustomer->その顧客企業コードを入力するボックスの名前

と言うことですが、質問の趣旨はこういう事なのか?

>の意味が正確には良く分かりません。
貴方の求める「意味」という意味が分かりません。

オブジェクトとその名前の対応という意味?
なぜその名前なのか?という意味?
命名規則の意味?
    • good
    • 0
この回答へのお礼

trajaa様ご回答ありがとうございます。

私が求めた「意味」について説明が
足りず、恐縮です。

私が回答を求めた「意味」とは、

・「オブジェクトとその名前の対応」
・「命名規則の意味」

です。

ただNO.2とNo.5のご回答から
txtNo,txtDate等はオブジェクト名で
ユーザーホームからある程度、
任意に決められるということが分かりました。

お礼日時:2011/06/19 09:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!