Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9048 / 13644 ツリー ←次へ | 前へ→

【29563】ComboBoxを利用し期間選択について 悩めるマクロ見習い 05/10/7(金) 19:06 質問[未読]
【29564】Re:ComboBoxを利用し期間選択について hine 05/10/7(金) 19:29 発言[未読]
【29569】Re:ComboBoxを利用し期間選択について 悩めるマクロ見習い 05/10/7(金) 21:17 質問[未読]
【29570】Re:ComboBoxを利用し期間選択について hine 05/10/7(金) 21:56 発言[未読]
【29573】Re:ComboBoxを利用し期間選択について 悩めるマクロ見習い 05/10/8(土) 7:16 質問[未読]
【29576】Re:ComboBoxを利用し期間選択について hine 05/10/8(土) 10:01 発言[未読]
【29635】Re:ComboBoxを利用し期間選択について 悩めるマクロ見習い 05/10/10(月) 0:10 質問[未読]
【29638】Re:ComboBoxを利用し期間選択について hine 05/10/10(月) 1:41 発言[未読]
【29645】Re:ComboBoxを利用し期間選択について 悩めるマクロ見習い 05/10/10(月) 10:32 お礼[未読]

【29563】ComboBoxを利用し期間選択について
質問  悩めるマクロ見習い  - 05/10/7(金) 19:06 -

引用なし
パスワード
   初心者です。

ComboBoxを利用し日付の取得を行う方法を質問します。

ComboBoxには2004年から現在までの年、月をリストに入れたく思います。
また常にNowの年月の既定表示が希望です。
それを利用して取得した年月をRange("C5") に代入するのが目的です。

自分なりにマクロを組んでみましたがぜんぜん駄目です。
宜しくお願いします。

フォームイメージ:
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 |                    |
 |cmbYear1/cmbMonth1 〜 cmbYear2/cmbMonth2|
 |                    |
 |                    |
 |       期間選択ボタン      |
 |                    |
 |_____________________|


Private Sub CommandButton4_Click()

  Dim i As Integer  'ループカウンター
  
  '年コンボボックスに選択範囲をセット
  For i = 2004 To CInt(Format(Now, "yyyy"))
    Me.cmbYear1.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear1.Value = Format(Now, "yyyy")
  
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth1.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth1.Value = Format(Now, "MM")

    
  '年コンボボックスに選択範囲をセット
  For i = 2004 To CInt(Format(Now, "yyyy"))
    Me.cmbYear2.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear2.Value = Format(Now, "yyyy")
  
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth1.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth1.Value = Format(Now, "MM")

Worksheets("sheet2").Range("C5") = Me.cmbYear1.Value & "年" & Me.cmbMonth1.Value & "月" & "〜" & Me.cmbYear2.Value & "年" & Me.cmbMonth2.Value & "月" &

End Sub

【29564】Re:ComboBoxを利用し期間選択について
発言  hine  - 05/10/7(金) 19:29 -

引用なし
パスワード
   悩めるマクロ見習い さん
こんばんは

ComBoboxにセットする時と
シートに書き出すのを別にしたらどうでしょうか?


Private Sub UserForm_Initialize()
  Dim i As Integer  'ループカウンター
 
  '年コンボボックスに選択範囲をセット
  For i = 2004 To CInt(Format(Now, "yyyy"))
    Me.cmbYear1.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear1.Value = Format(Now, "yyyy")
 
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth1.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth1.Value = Format(Now, "MM")

  
  '年コンボボックスに選択範囲をセット
  For i = 2004 To CInt(Format(Now, "yyyy"))
    Me.cmbYear2.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear2.Value = Format(Now, "yyyy")
 
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth1.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth1.Value = Format(Now, "MM")


End Sub
'------------------------------------------------------------------
Private Sub CommandButton4_Click()

Worksheets("sheet2").Range("C5") = Me.cmbYear1.Value & "年" & _
    Me.cmbMonth1.Value & "月" & "〜" & _
      Me.cmbYear2.Value & "年" & Me.cmbMonth2.Value & "月"
     
End Sub

【29569】Re:ComboBoxを利用し期間選択について
質問  悩めるマクロ見習い  - 05/10/7(金) 21:17 -

引用なし
パスワード
   hine さん ありがとうございます。

それが駄目なんです。
質問する前に自分でも試しましたが
エラーで「オブジェクトが、このメゾットまたはプロパティをサポートしていません。」
となりFORMが開かなくなります

【29570】Re:ComboBoxを利用し期間選択について
発言  hine  - 05/10/7(金) 21:56 -

引用なし
パスワード
   悩めるマクロ見習い さん
こんばんは

こちらでは問題ありません。
winXp Excel2000です。

2箇所ほど気になりますが
>Worksheets("sheet2").Range("C5") = Me.cmbYear1.Value & "年" & _
>  Me.cmbMonth1.Value & "月" & "〜" & _
>    Me.cmbYear2.Value & "年" & Me.cmbMonth2.Value & "月" &
の最後の & はとらないと
それと
最後のところ
>'月コンボボックスに選択範囲をセット
>  For i = 1 To 12
>    Me.cmbMonth1.AddItem (Format(i, "00"))
>  Next i
>  '現在月をセット
>  Me.cmbMonth1.Value = Format(Now, "MM")
はMe.cmbMonth2
ですよね。

ほかの所に原因があるのでは?

【29573】Re:ComboBoxを利用し期間選択について
質問  悩めるマクロ見習い  - 05/10/8(土) 7:16 -

引用なし
パスワード
   hine さん ありがとうございます。

winXp Excel2003ですが
どうしても駄目です。

いろいろ試しましたが下記の部分を記載するとエラーになってしまいます。
何処かに問題があると思いますが・・
原因が分かりません。困りました。


Private Sub UserForm_Initialize()

  Dim i As Integer  'ループカウンター
  
  '年コンボボックスに選択範囲をセット
  For i = 2005 To CInt(Format(Now, "yyyy"))
    Me.cmbYear1.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear1.Value = Format(Now, "yyyy")
  
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth1.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth1.Value = Format(Now, "MM")

    
  '年コンボボックスに選択範囲をセット
  For i = 2005 To CInt(Format(Now, "yyyy"))
    Me.cmbYear2.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear2.Value = Format(Now, "yyyy")
  
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth2.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth2.Value = Format(Now, "MM")
   
End Sub

【29576】Re:ComboBoxを利用し期間選択について
発言  hine  - 05/10/8(土) 10:01 -

引用なし
パスワード
   悩めるマクロ見習い さん
おはようございます

winXp Excel2003で確認してみました。

悩めるマクロ見習い さんのコードを
コピー・貼り付けして
CombBoxのオブジェクト名をコードにあわせて
変更しても問題ありませんでした。
掲載されているコードで間違いそうな所は
CombBoxのオブジェクト名ぐらいだと思いますが・・・
お役に立てなくてごめんなさい。


>Private Sub UserForm_Initialize()
>
>  Dim i As Integer  'ループカウンター
>  
>  '年コンボボックスに選択範囲をセット
>  For i = 2005 To CInt(Format(Now, "yyyy"))
>    Me.cmbYear1.AddItem (Format(i, "0000"))
>  Next i
>  '現在年をセット
>  Me.cmbYear1.Value = Format(Now, "yyyy")
>  
>  '月コンボボックスに選択範囲をセット
>  For i = 1 To 12
>    Me.cmbMonth1.AddItem (Format(i, "00"))
>  Next i
>  '現在月をセット
>  Me.cmbMonth1.Value = Format(Now, "MM")
>
>    
>  '年コンボボックスに選択範囲をセット
>  For i = 2005 To CInt(Format(Now, "yyyy"))
>    Me.cmbYear2.AddItem (Format(i, "0000"))
>  Next i
>  '現在年をセット
>  Me.cmbYear2.Value = Format(Now, "yyyy")
>  
>  '月コンボボックスに選択範囲をセット
>  For i = 1 To 12
>    Me.cmbMonth2.AddItem (Format(i, "00"))
>  Next i
>  '現在月をセット
>  Me.cmbMonth2.Value = Format(Now, "MM")
>   
>End Sub

【29635】Re:ComboBoxを利用し期間選択について
質問  悩めるマクロ見習い  - 05/10/10(月) 0:10 -

引用なし
パスワード
   hine さん: なんとかできました。ありがとうございました。

改めて質問があります。
指定する期間の範囲を6ヶ月以内に設定するにはどうすればよいでしょうか
指定した期間が6ヶ月を超えた場合、msgboxで知らせるようにしたいのですが
よく分かりません。アドバイスをお願いします。


Private Sub UserForm_Initialize()
  Dim i As Integer  'ループカウンター
 
  '年コンボボックスに選択範囲をセット
  For i = 2004 To CInt(Format(Now, "yyyy"))
    Me.cmbYear1.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear1.Value = Format(Now, "yyyy")
 
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth1.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth1.Value = Format(Now, "M")

  
  '年コンボボックスに選択範囲をセット
  For i = 2004 To CInt(Format(Now, "yyyy"))
    Me.cmbYear2.AddItem (Format(i, "0000"))
  Next i
  '現在年をセット
  Me.cmbYear2.Value = Format(Now, "yyyy")
 
  '月コンボボックスに選択範囲をセット
  For i = 1 To 12
    Me.cmbMonth2.AddItem (Format(i, "00"))
  Next i
  '現在月をセット
  Me.cmbMonth2.Value = Format(Now, "M")


End Sub
'------------------------------------------------------------------
Private Sub CommandButton4_Click()

Worksheets("sheet2").Range("C5") = Me.cmbYear1.Value & "年" & _
    Me.cmbMonth1.Value & "月" & "〜" & _
      Me.cmbYear2.Value & "年" & Me.cmbMonth2.Value & "月"
     
End Sub

【29638】Re:ComboBoxを利用し期間選択について
発言  hine  - 05/10/10(月) 1:41 -

引用なし
パスワード
   悩めるマクロ見習い さん

こんばんは
これでどうですか
勘違いならごめんなさい。

DateDiffを調べてくださいね。

>指定する期間の範囲を6ヶ月以内に設定するにはどうすればよいでしょうか
>指定した期間が6ヶ月を超えた場合、msgboxで知らせるようにしたいのですが


Private Sub CommandButton4_Click()

Dim myS As Variant
Dim myE As Variant
Dim myK As Variant

myS = cmbYear1.Value & "/" & cmbMonth1
myE = cmbYear2.Value & "/" & cmbMonth2
myK = DateDiff("m", myS, myE)
myK = Val(myK) + 1
'MsgBox myK
If myK > 6 Then
  MsgBox "期間?"
  Exit Sub
End If

Worksheets("sheet2").Range("C5") = Me.cmbYear1.Value & "年" & _
  Me.cmbMonth1.Value & "月" & "〜" & _
    Me.cmbYear2.Value & "年" & Me.cmbMonth2.Value & "月"

End Sub

【29645】Re:ComboBoxを利用し期間選択について
お礼  悩めるマクロ見習い  - 05/10/10(月) 10:32 -

引用なし
パスワード
   hine さん
ありがとうございました。

旨く動作しました。
感謝いたします

9048 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free