
エクセルのシート上にコンボボックス を設置しています。
ここから年月(例:2020年6月)を選ぶ方法を教えていただけませんでしょうか?
別なところに年月の一覧を作って入力範囲にすることはできるのですが、
そうすると手動で毎月年月を更新しなければならず、
そうではなく、常に最新の年月が表示されるようにしたいと思っています。
ユーザーフォームで作ったとき、
ComboBox1.Value = Format(ComboBox1.Value,"yyyy年m月")
とすることで常にコンボボックスに最新月が表示されるようにできました。
これと同じことをユーザーフォームを使わずに行いたいのですが、方法がわかりません。
ご教授のほど、よろしくお願いいたします。
No.8ベストアンサー
- 回答日時:
No5です。
>A1に2020年6月、A102に2012年1月になっている場合、
>スタートセル位置がA1でカウント開始日付が2012年1月、でよろしいでしょうか?
スタートセル位置は$A$1で良いですが、リストが別シートにある場合には、「シート名!」を付けるのを忘れないでください。
開始日(=一番古い月)が2012年1月の場合、カウント開始日付は「"2012/1/1"」のような日付を表す文字列にしておけばよいです。
(リストに設定した関数式が、上記よりも広い範囲までフィルコピーされていることが条件です)
No.7
- 回答日時:
No.1・6です。
すでに配置してある「コンボボックス」がフォームコントロールのコンボボックスなのかActiveXのコンボボックスなのかを知りたい!
というコトですね。
簡単な方法としては
メニュー → 開発 → 「デザインモード」をクリック
これで簡単に選択できればActiveXのコンボボックスになりますので、
プロパティをクリックするとオブジェクト名が判ります。
単に指のマークが表示される場合はフォームコントロールのコンボボックスになるはずです。
この場合は結構厄介です。
あれこれオブジェクト名を探してみました。
「ドロップ1」のようになるようですが、それをそのままオブジェクト名にはできないようです。
後者の場合は当方の力不足で、お役に立てないかも・・・m(_ _)m
tom04さん、ありがとうございます。
教えていただいたように確認してみたところ、フォームコントロールで間違いないようです。
でもせっかくなので教えていただいたコードも参考にさせていただきます。
ありがとうございます。
No.6
- 回答日時:
No.1です。
前回はActiveXコントロールの「コンボボックス」がシート上に配置してある!という前提のコードでした。
数か月分をドロップダウン候補にしたい!ということのようなので・・・
今回もシートモジュールにしてください。
シート上にはActiveXコントロールのコンボボックスが配置してある!という前提です。
とりあえず2年分を候補にするよにしてみました。
Private Sub Worksheet_Activate()
Dim myDate As Date
Dim i As Long
myDate = Date
ComboBox1 = Format(myDate, "yyyy年m月")
For i = 1 To 24 '//★//
ComboBox1.AddItem Format(DateAdd("m", i, myDate), "yyyy年m月")
Next i
End Sub
※ シートがアクティブになった時点で実行されます。
※ ドロップダウン表示したい数はコード内の「★」の行で調整してみてください。m(_ _)m
tom04さん、ありがとうございます。
シート上に設置したコンボボックス(フォームコントロール)がcomboBox1かどうかがわからないのですが、
どのようにしたら確認できるか教えていただけませんでしょうか?
No.5
- 回答日時:
No4です
>これは来月はどうなるのでしょうか?
来月になると、一番上のセルの値が「2020年7月」に変わり、以下一か月ずつ繰り上がるはずです。
>一番下の2012年1月は変わらず、毎月データが増えるようになりますでしょうか?
選択肢が月ごとに増えてゆけば良いという意味と解釈しました。
入力規則の設定を可変にすることで可能と思います。
いらぬおせっかいではありますが、2012年から2020年まで(以降増え続ける)となると、選択肢が多すぎて使いにくいような気がしますが・・・?
さて、本題ですが、例えば開始日を固定したければ、現在からそれまでの経過月数+1が選択肢として表示したいセルすうろいうことになります。
まずリストの方を十分に下方迄(余分なくらいに)フィルコピーしておきます。
次に入力規則の設定蘭でセルの範囲を関数で指定します。
=OFFSET(スタートセル位置,0,0,DATEDIF("カウント開始の日付",TODAY(),"M")+1)
としておくことで実現できます。
「スタートセル位置」、「カウント開始日付」は質問者様はご存知ですが、私にはわかりませんので、適宜設定してください。
fujillinさん、ありがとうございます。
実行してみたのですが、「この数式内の範囲の参照または定義された名前が見つかりません」と出てしまいました。
A1に2020年6月、A102に2012年1月になっている場合、
スタートセル位置がA1でカウント開始日付が2012年1月、でよろしいでしょうか?
No.4
- 回答日時:
No2です
>という選択肢をコンボ ボックスに入れたかったのですが、
>この場合はどのようにしたらよろしいのでしょうか?
通常の入力規則を設定しておいて、リストの方に同様の関数式を設定しておけば可能になります。
ただし、この場合は、選択肢となっているリストの方はブックを開くと自動的に更新(=自動計算になっている場合)されますが、コンボボックスの値の方は自動更新されません。(エクセルの通常仕様なので)
ドロップダウンすれば、選択肢は新しい内容のものになって表示されます。
値が文字列なのかシリアル値なのか不明のままですが、とりあえず以下に文字列と仮定した場合の関数式を記しておきます。(シリアル値の場合もほぼ同様です。No2を参照)
・リスト表示の選択肢がどこか別のセル範囲にあるとして、1列に(縦に)
ならんだセル範囲であると仮定します。
・選択肢は当月を先頭に、一月前、二月前…と下に並ぶものとします。
選択肢の先頭セルに
=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+1-ROW(A1),1),"yyyy年m月")
の関数式を入力し、下方に必要な数だけフィルコピーでいかがでしょうか?
fujillinさん、ありがとうございます。
別シートに関数式を入れてコピーをしたら希望の年月ができました。
A1(2020年6月)からA102(2012年1月)まで年月が入っておりますが、これは来月はどうなるのでしょうか?
A1が2020年7月になって、A102が2012年2月になるのでしょうか?
一番下の2012年1月は変わらず、毎月データが増えるようになりますでしょうか?
No.3
- 回答日時:
敢えて質問文に『年月を選ぶ』と記載されているのですし『別なところに年月の一覧を作って』とあるわけですから、そのComboboxに入れる値は『当月』を含めて前後数ヶ月なのか、過去のみか、未来のみなのかを明確に提示された方が宜しいのでは?と思いますよ。
多分ですがユーザーフォームの時は『年月日』で取得してたものを選択した際に『年月』にされたとか?
めぐみん_さん、ありがとうございます。
説明不足ですみません。
コンボボックス には、
2020年6月
2020年5月
2020年4月
2020年3月
・
・
・
と表示させるようにしたく、2012年1月まで選べるようにしたいと思っています。
ユーザーフォームのときは、
Private Sub ComboBox1_Change()
ComboBox1.Value = Format(ComboBox1.Value,"yyyy年m月")
End Sub
としていました。
これと同じことをシート上に直接設置したコンボボックス でもやりたかったのですが、
どのようにしたらよいのかわからず質問させていただきました。
No.2
- 回答日時:
こんにちは
ブックを開いた時の日付が表示される(別の日に開くとその日になる)のでよければ、コンボボックスではなく、当該セルに
=YEAR(TODAY())&"年"&MONTH(TODAY())&"月"
という式を入力しておくことで可能と思います。
上式の結果は文字列になっていますので、シリアル値(エクセルが日付と認識する値)としたければ、
=DATE(YEAR(TODAY()),MONTH(TODAY()),1)
という式にしておけばよろしいかと。
セルの書式はあらかじめ「yyyy年m月」としておきます。
※ ご質問文に記載がありませんでしたので、シリアル値の場合の日(日数)の部分は1(ついたち)になるようにしてあります。
もしも、当日そのままの日付でよければ、
=TODAY()
だけでよくなります。
一度入力した値は、別の日にブックを開いてもそのまま(変化しない)ようにしたい場合は、
・ボタンを押すとその日の日付が設定される
または
・当該セルをダブルクリックすると日付が設定される
といったマクロを作成しておくことで実現可能です。
fujillinさん、ありがとうございます。
セルに入力する方法で開いたときの年月の確認ができました。
コンボボックス にした理由は開いた時より過去の月を選択する場合があったためでした。
2020年6月
2020年5月
2020年4月
2020年3月
・
・
・
という選択肢をコンボ ボックスに入れたかったのですが、
この場合はどのようにしたらよろしいのでしょうか?
No.1
- 回答日時:
こんにちは!
あるシート上にコンボボックス1を配置しているのですね。
そして常に最新日(本日)を表示したい!と解釈しました。
「あるシート」がアクティブになった時点で表示するのはどうでしょうか?
「あるシート」のシートモジュールを
Private Sub Worksheet_Activate()
ComboBox1 = Format(Date, "yyyy年m月")
End Sub
としてみてはどうでしょうか?
※ 単に一つの日付だけを表示するのであれば
コンボボックスでなくて、テキストボックスで用を足すとは思いますが。
的外れならごめんなさい。m(_ _)m
tom04さん、ありがとうございます。
フォームコントロールでシート上に設置したので、コンボボックス の名称がわかりません。
確認方法があれば教えていただけませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/04/17 09:25
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
EXCEL VBAのコンボボックスで日だけを表示する方法
Excel(エクセル)
-
VBAのコンボボックスの年月表示について
Flash
-
-
4
年月日を持つテーブルから年月を指定して抽出したいのですが
その他(データベース)
-
5
アクセスVBAのMe!と[ ]
Access(アクセス)
-
6
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
7
コンボボックスに日付を表示する
Visual Basic(VBA)
-
8
DateTimePickerでに年月までしか選択できないようにしたいです。
Visual Basic(VBA)
-
9
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
10
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
11
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
12
コンボボックスにdateで取得した月の日数分を表示したい
Visual Basic(VBA)
-
13
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
14
クエリ実行結果0件の場合のフォーム展開中止とメッセージ表示
Access(アクセス)
-
15
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
16
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
17
excelVBA コンボボックスに時刻で表示したい
Excel(エクセル)
-
18
テキストボックスにカレンダー表示して入力方法
Visual Basic(VBA)
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 偶数月の15日(土日祝...
-
Excelの数式について教えてくだ...
-
Excelのメニューについて
-
VLOOKUP FALSEのこと
-
エクセル内に読み込んが画像の...
-
【マクロ】1回目の実行後、2...
-
勤務外時間を出す表が作りたい
-
Excelで作成した出欠表から日付...
-
エクセルの数式について教えて...
-
【マクロ】参照渡しとモジュー...
-
Excelの条件付書式について教え...
-
【マクロ】シート追加時に同じ...
-
マクロを実行すると、セル範囲...
-
【マクロ】参照渡しについて。...
-
Excel 日付の表示が直せません...
-
エクセルで、数字の下4桁の0を...
-
【マクロ】Call関数で呼び出し...
-
別のシートの指定列の最終行を...
-
Excelのデーターバーについて
-
Excelでの文字入力について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】重複する同じ行を、...
-
Excelの条件付き書式のコピーと...
-
vba 印刷設定でのカラー印刷と...
-
VBA の単語の意味を教えて下さい。
-
Excel 日付の表示が直せません...
-
エクセル 同じ行の隣り合う数字...
-
エクセル条件付き書式について。
-
エクセルの数式につきまして
-
ファイル名の変更
-
エクセル 数字のみ抽出につて
-
Excelの開始ブックを固定したい...
-
エクセルの数式について教えて...
-
エクセルのセルをクリックする...
-
=INDIRECT(RIGHT(CELL("filenam...
-
エクスプローラーで見ることは...
-
Excelの関数で質問です
-
至急お願いいたします 屋上の備...
-
エクセルでセルに入力する前は...
-
関数を教えて下さい
-
Excel 関数での質問です
おすすめ情報