- 締切済み
EXCEL VBA カレンダーコントロール自作
layyの回答
- layy
- ベストアンサー率23% (292/1222)
作るならカレンダーよりも電卓ですね。ボタンの数少ないですし仕様も明確。 目的のものを作れるか、が第1、効率化はその後でも良い。 ボタン42個1つ1つなら作れないが、記載シンプルになれば作れる、というのであれば、このやり方には課題が残りそうです。 いずれにしても質問の繰り返しは初心者の域を越えるには時間かかります。力ついたと思うのは錯覚で、あまりついてない、そういうの多いのです。
関連するQ&A
- エクセルVBAのオブジェクトのハンドリングについて
一応以下のVBAを作って稼動していますが、もっとスマートな方法はないでしょうか。ご存知の方よろしくお願いもうしあげます。 シートやフォームのボタン・ラベルのキャプション、テキストボックスのテキスト、チェックボタンの値をiniファイルに保存し、次回それを使用するVBAを作りました。 iniファイルの中身は以下ようになっています。 [シート名] CommandButton1.Caption=xxxx Label3.Caption=yyyy TextBox6.Text=zzzz ・ ・ [フォーム名] CommandButton8.Caption=xxxx Label5.Caption=yyyy ・ ・ iniファイル作成時はkeyには"CommandButton1.Caption"、その値にはSheets("シート名").CommandButton1.Captionなどの様に個々のオブジェクトを指定しています。 iniファイル読取時はSelect Case文でkey"CommandButton1.Caption"だったら.CommandButton1.Captionに値をセットするようにしています。 セットする個々のオブジェクト全てに書出し、読取りを行っていますのでとても冗長なVBAの記述になっています。 個々のオブジェクトを指定せずに書き出す方法、及びiniファイルに書かれているオブジェクト名で該当オブジェクトに値を設定する方法が知りたいのです。
- ベストアンサー
- Visual Basic
- エクセルVBA コントロールのプロパティの変更
エクセル2003でシート上に割り付けたラベルコントロールをVBAでCaptionプロパティで 変更するプログラムを作ってみました。(同じ様にボタンコントロールのCaptionプロパティに ついても作りました。) ステップ実行(F8)では、思ったとおり変更されますが、普通の実行(F5)では思ったとおり 変更されず、遅れて最後のコマンド分しか変更されませんでした。 *条件ループでセルのテキストを順番に読みコントロールのCaptionとして変更するプログラム です。 なぜ出来ないのか分かりません。 原因又は、方法を教えていただけないでしょうか? VBAでは、オブジェクト名に配列を使えないらしかったのでOLEObjects(コントロール?、 コレクション?)でオブジェクト名の配列のように使っています。 あまり、詳しくないので用語が間違っていたらすいません。 後、途中にインターバルタイマー入れたりして、動作確認しましたがやはりダメでした。
- 締切済み
- その他MS Office製品
- オブジェクト名をVBAで指定する方法を教えてくださ
VBAでワークシートにOLEObjectsのコマンドボタンを設置してるのですが ボタンのオブジェクト名をVBAで指定するにはどうすればいいでしょうか? Private Sub CommandButton1_Click() With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False) .Object.Name = "ボタン1" .Object.Caption = "ボタン" .Object.Font.Size = 9 .Width = ActiveCell.Width .Height = ActiveCell.Height End With End Sub を実行すると、 .Object.Name = "ボタン1" の部分で 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」というエラーになります。 他のコードは大丈夫です。 オブジェクト名をVBAで指定する方法を教えてください。 当方エクセル2003です。
- ベストアンサー
- オフィス系ソフト
- VBAでコントロール配列を持つことは可能ですか?
Excel2002、OSはXPです。 VBではコントロールに配列を持つことが出来ましたが、 VBAでコントロール配列を持つことは可能でしょうか? やりたいことはユーザーフォームにラベルを100個ぐらい貼り付けて、 テキストボックス入力した値がCell(i,1)と等しければ、 i番目のラベルのCaptionに文字を入力したい。という感じです。 もしVBのようにコントロール配列を持てれば、 If TextBox1.text=Cells(i,1) Then Label(i).Caption="~~" という風に出来るのですが、どうも配列の設定がVBのようにできません。 プロパティにINDEXが無いですし、オブジェクト名を同じにしたら エラーとなってしまいますし。。 もし出来ないのであれば、何か回避策のようなものはないでしょうか? 力技で100個IFを書けば出来ることは出来るのですが・・ If TextBox1.text=Cells(i,1) Then If i = 1 Then Label1.Caption="~~" ElseIf i=2 then Label2.Caption="~~" ・・・・
- ベストアンサー
- オフィス系ソフト
- VBAのカレンダーコントロールについて・・・
Excel 2010を使用しています。 以前は、2007を使っていたんですが・・・2010になったら カレンダーコントロールの『DTPicker』と『MonthView』が 使えなくなっていました。 以前はちょっとした日付の選択の時に使って重宝していましたが・・・ 使えなくなったのが、とても残念です。 どうにかして使える様になれればと思うのですが・・・ 私には、新たにカレンダーコントロールを作る知識もなく どうしたら良いか困っています。 そこで、VBAの初心者にでも扱える様なカレンダーコントロール作成方法などが ありましたら教えて頂けますでしょうか? 新たに作るといった場合は、どの様に作ったら良いか 教えて下さい。 お手数ですが、本当に宜しくお願いしまます。
- ベストアンサー
- Visual Basic
- EXCELでのカレンダーコントロールについて
Excel2000とXPで同一ファイル使用しているのですが、カレンダーコントロールのバージョンが違い表示の内容が変わってしましますので、VBAにてカレンダーコントロールのバージョンを分かる方法を知っている方がいましたら、よろしくお願いします。 なお、下記の2つのサイトでも調べたのですが不明でした。 http://www.sk2.aitai.ne.jp/~happy/ http://www.moug.net/
- ベストアンサー
- オフィス系ソフト
- EXCEL VBA ユーザフォームで複数のコントロールを作るとき
VBAにてシステムを作っています。当該システムの性格上、ユーザフォーム上のコントロールが多量にあります(テキストボックスが30個ぐらい) このように複数のコントロールを作成する場合、オブジェクト名を textbox1,textbox2というように自動で連番を振ってくれるのですが、都合上textboxというオブジェクト名を使えなくなってしまいました。 目的としては txt1,txt2というように任意のオブジェクト名で自動的に連番を振ってほしいのですが、そのような機能はVBEにありますでしょうか?もしくはそういったアドインがあれば教えていただきたいです。いちいち30個もあるコントロールのプロパティをあけて名前を変えるというような非効率的なものは避けたいので・・・。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでmeに相当するものは?
コマンドボタンやラベルの自分自身の情報を得る汎用的な方法はないでしょうか。 例えばCommandButton1のCaptionを表示する場合、以下のようにコーディングしています。 Private Sub CommandButton1_Click() MsgBox CommandButton1.Caption End Sub CommandButton1.Captionと書いておりますが、CommandButton1と書かずに自分自身を指定する方法はないでしょうか? 遥か昔マッキントッシュのハイパーカードでは、自分自身の名称を得る時に「name of me」で可能でしたが、このmeに相当するものはエクセルではどのようになるのでしょうか? よろしくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- (EXCEL)カレンダーコントロールについて
(EXCEL2002) カレンダーコントロール、または万年カレンダーをシート上に作成してあり、カレンダーの日付をクリックするとVBAのUserForm1が表示されて UserForm1にはTextBox1(商品名を入力します)とTextBox2(数量を入力します)とCommandButton1(登録と記入してあります)があり、各テキストボックスに入力して登録を押すと、別シートに(日付(A列)は記入してあります)B列、C列にクリックした日付の行に記入されるようにできないでしょうか? A B C ------------ 1 | 日付 商品名 数量 2 | 1 3 | 2
- ベストアンサー
- オフィス系ソフト
- オブジェクトのプロパティーをVBAで操作する方法
今、Excel97とVBAを用いて、ツールを作成しています。 VBAでシートに貼り付けたボタンをEnabled=TrueにしているのをEnabled=Falseにしたいと思い、ヘルプを元に作成しました。しかし、「変数が定義されていません。」と表示されてしまいます。 Sheet オブジェクト名:CommandButton1 VBA sub 表示操作() CommandButton1.Enabled = True ← エラー箇所 end sub オブジェクトのプロパティーをVBAから操作する方法を教えて下さい。
- ベストアンサー
- オフィス系ソフト