エクセルのシート上にコンボボックス を設置しています。
ここから年月(例: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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
年月日を持つテーブルから年月を指定して抽出したいのですが
その他(データベース)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
EXCEL VBAのコンボボックスで日だけを表示する方法
Excel(エクセル)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
アクセスVBAで年、月、日のコンボボックス
Access(アクセス)
-
6
VBAのコンボボックスの年月表示について
Flash
-
7
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
8
excelVBA コンボボックスに時刻で表示したい
Excel(エクセル)
-
9
EXCEL 年月表示をするVBAを教えてください。
Excel(エクセル)
-
10
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
11
アクセスのレポートに、フォームで算出した数字を表示させたい
Access(アクセス)
-
12
ACCESSのコンボボックスで入力した値がTABLEに反映されずに数字がでます
Access(アクセス)
-
13
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
14
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
15
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
16
コンボボックスにdateで取得した月の日数分を表示したい
Visual Basic(VBA)
-
17
タブオーダーリストからのの削除
Excel(エクセル)
-
18
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
19
アクセスVBAのMe!と[ ]
Access(アクセス)
-
20
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelVBAについて。
-
excelVBAについて。
-
excelVBAについて。
-
エクセルのデータ整理の方法
-
excelVBAについて。
-
excelVBAについて。
-
Excelの警告について
-
excelVBAについて。
-
エクセルで図形を含む複数のブ...
-
評価のエクセルを作りたいです。
-
excelVBAについて。
-
excelVBAについて。
-
excelVBAについて。
-
excelVBAについて。
-
ieを使わずにサーバーとのやり...
-
エクセルVBA 同じ品名を色分けする
-
エクセルでVLOOKUPの入ったセル...
-
Excelの数式について教えてくだ...
-
条件付き書式に設定する関数を...
-
エクセルで、数字の下4桁の0を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルの数式バーのフォント...
-
【Excel】日付に連動してプルダ...
-
【再投稿】レイアウトが異なる...
-
Excelについて教えてください ...
-
同率順位の発生しないランキン...
-
エクセルマクロについて教えて...
-
【Excel VBA】 テキストファイ...
-
Excel 標準フォントについて教...
-
Excelの計算で差分を求める場合...
-
Excelの区切り文字について質問...
-
大容量があつかえるソフトを探...
-
エクセルの計算式について(COU...
-
エクセルについて
-
今までは、 「CSVの出力先を選...
-
Excel ショートカットで列、行...
-
8:40までの出勤は全て8:30に...
-
if関数。半角文字や全角文字で...
-
エクセルの関数
-
毎週追加して行くセルの数値を...
おすすめ情報