• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel のVBAに付いて教えて下さい。)

ExcelのVBAで指定した日付の列に文字数を入力する方法

このQ&Aのポイント
  • ExcelのVBAを使用して、指定した日付の列に文字数を入力する方法について教えてください。
  • UserFormを使ってComboboxで月の列を指定し、新たに追加するComboboxで日付の行を選択して文字数を入力するようなコードを作成したいです。
  • 具体的なコードの例や手順を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

添付されている図では4月1日が何行目から始まっているのか解りません '4月1日が7行目から始まっている場合 日 = 日 + 6 8行目からだと 日 = 日 + 7  と修正してください Private Sub UserForm_Initialize()   Dim i As Long   For i = 1 To 12     Me.ComboBox1.AddItem i & "月"   Next   For i = 1 To 31     Me.ComboBox2.AddItem i & "日"   Next End Sub Private Sub CommandButton2_Click()   Dim 月 As Long, 日 As Long   月 = Replace(Me.ComboBox1.Value, "月", "")   日 = Replace(Me.ComboBox2.Value, "日", "")   Select Case 月     Case 4 To 9       月 = 月 * 5 + 17       '4月1日が7行目から始まっている場合       日 = 日 + 6     Case 10 To 12       月 = 月 * 5 - 13       '10月1日が42行目から始まっている場合       日 = 日 + 41     Case 1 To 3       月 = 月 * 5 + 47       日 = 日 + 41   End Select   Cells(日, 月).Value = TextBox1.Value End Sub

awmori
質問者

お礼

度々私の質問に回答いただきまして本当にありがとうございます。 コードの意味も分かりやすく教えて頂きまして、今後、活用していければと思います。 また質問は、絶えないかもしれませんが、宜しくお願いします。

awmori
質問者

補足

ご回答ありがとうございます。内容が不足してまして申し訳ありません。 日付けの行の件ですが・・・ 4月1日は、11行目 10月1日は、46行目となります。 質問ですが・・・ 月 = 月 * 5 + 17←この部分ですが、どの様に理解したらよいでしょうか?

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>質問ですが・・・ >月 = 月 * 5 + 17←この部分ですが、どの様に理解したらよいでしょうか? まず Me.ComboBox1.Value で何月を選択したと、値が得られます 仮に 4月 だとすると Replace("4月", "月", "") と、"月"を""に置き換えると4の数値だけが残りますね コードで書くと 月 = Replace(Me.ComboBox1.Value, "月", "") になります。 4月の場合だと 月 = 月 * 5 + 17 ⇒ 月 = 4 * 5 + 17 で月に37が入ります、 この37が列番号になります。    37列 = AK列 5月だと 5 * 5 + 17 = 42 42列 = AP列 日付の場合も得た日付に始まりの行目を加算して求めています '4月1日が7行目から始まっている場合 日 = 日 + 6 >4月1日は、11行目 なら 日 = 日 + 10 になります

awmori
質問者

補足

ありがとうございます。 とても分かりやすい説明ありがとうございます 希望する動作が得ることができました。

関連するQ&A