cj_mover の回答履歴

全798件中241~260件表示
  • 【至急】VBAについて

    今会社でエクセルを作成しています。 使用しているエクセルは2003です。 Ctrl+Fの機能とオートフィルタの機能を足したものを作成しようとしています。  現在 入力している内容は下記になります。 Dim txt As String Dim target As Range Dim rng As Range Dim adr As String 'Set target = Range("A6:L6 & Rows.Count) ' txt = InputBox("検索する内容を記述して下さい。") If txt = "" Then Exit Sub Set rng = target.Find(txt, After:=target(target.Count), LookAt:=xlPart) If rng Is Nothing Then MsgBox "ありません" Exit Sub End If adr = rng.Address Do rng.Activate Set rng = Range("A6:L" & Rows.Count).FindNext(rng) If rng.Address = adr Then MsgBox "終わりに達しました" If MsgBox("続けて調べますか?", vbYesNo) = vbNo Then Exit Do Loop End Sub 項目はA6からL6までに記入されていきます。 一部内容は空白の部分もでますが、A6・B6は必須入力です。 下方向に内容が無限に増えて行きます。 現在エラーで “オブジェクト変数または With ブロック変数が設定されていません”と出てしまっています。 Set rng = target.Find(txt, After:=target(target.Count), LookAt:=xlPart) ここの部分がおかしいように思われます。 ですが、どう直せばいいのか分からず先に進めません… 皆様の知識をお借りできればと思い投稿致しました。 何卒宜しくお願い致します。

  • ブックを順番に切り替える方法

    複数開いているブックを、名前の指定はせずに順番に切り替える方法が分からずに困っています。 例えば、Book1、Book2、Book3を繰り返して切り替える等です。 どのような方法がありますか。 ご回答宜しくお願いします。

  • ブックを順番に切り替える方法

    複数開いているブックを、名前の指定はせずに順番に切り替える方法が分からずに困っています。 例えば、Book1、Book2、Book3を繰り返して切り替える等です。 どのような方法がありますか。 ご回答宜しくお願いします。

  • 入力したセル番地をメッセージボックスで表示する方法

    Excelでメッセージボックスの使い方についてお聞きします。 下記のコードを実行します。その時、メッセージボックス上に入力したセル番地(A1)、「こんにちは」という語句をそれぞれ表示させるにはどのような方法があるのでしょうか。 宜しくお願いします。 Range("A1").Value = "こんにちは"

  • 入力したセル番地をメッセージボックスで表示する方法

    Excelでメッセージボックスの使い方についてお聞きします。 下記のコードを実行します。その時、メッセージボックス上に入力したセル番地(A1)、「こんにちは」という語句をそれぞれ表示させるにはどのような方法があるのでしょうか。 宜しくお願いします。 Range("A1").Value = "こんにちは"

  • ブックを順番に切り替える方法

    複数開いているブックを、名前の指定はせずに順番に切り替える方法が分からずに困っています。 例えば、Book1、Book2、Book3を繰り返して切り替える等です。 どのような方法がありますか。 ご回答宜しくお願いします。

  • [VBA] InStrRevとLikeの組合せ

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 先日、 http://okwave.jp/qa/q8321600.html で質問した内容なのですが、解決したと思ったらまだ未解決のため、再度質問いたします。 A列に住所のデータがあるのですが、形式がちょっと特殊で、 A1 千代田区千代田1-1-1-301千代田マンション1号棟 A2 千代田区千代田2-3-4 というな形になっています。(A1,A2はセル番地表示で、その文字列がセルにあるわけではありません) 並び順が、市名(区名)・町名・丁目・番地・号地・部屋番号・物件名となっています。 データの定義は、丁目・番地・号地・部屋番号については半角数字・市名(区名)・町名・物件名は数字やアルファベットを含むものであっても全角であることは担保されております。 戸建てであればいいのですが、集合住宅の場合、物件名と部屋番号が入れ替わってしまっています。 これを、できればA列には住所、B列には物件名・(全角スペース)・部屋番号とわけたいのです。   A           B 1 千代田区千代田1-1-1  千代田マンション1号棟 301 2 千代田区千代田2-3-4 という内容で、ご回答いただいた Sub SplitAddresses()   Dim i As Long, n As Integer, pos1 As Integer, pos2 As Integer, pos3 As Integer   For i = 1 To Cells(Rows.Count, "a").End(xlUp).Row     With Cells(i, "a")       For n = 0 To 9         pos1 = InStrRev(.Value, n)         If pos2 < pos1 Then pos2 = pos1       Next n       Cells(i, "b").Value = Right$(.Value, Len(.Value) - pos2)       .Value = Left$(.Value, pos2)       pos2 = 0       pos3 = InStrRev(.Value, "-")       If pos3 And Cells(i, "b").Value <> "" Then         Cells(i, "b").Value = Cells(i, "b").Value & " " & Right$(.Value, Len(.Value) - pos3)         .Value = Left$(.Value, pos3 - 1)       End If     End With   Next i   Columns("a:b").AutoFit End Sub というコードでうまくいくと思ったのですが、 千代田区千代田1-2-3-4F千代田マンション1号棟 千代田区千代田1-1-1-A千代田マンション1号棟 といったデータも存在し、For n = 0 To 9ではまかなえないことがわかりました。 (数字の部屋番号だけではなく、4FやAなど、アルファベットの部屋番号が存在するということです) 数字だけではなく、半角英数字を末尾から検査し、その文字列がある位置を割り出す必要があるのですが、InStrRev関数とLike演算子を組み合わせて、返り値をpos1に代入しようと思ったもののうまくいきません。 ひとまず、返り値の確認のため、下記のようなコードを書きましたが、 Cells(1, 2) = InStrRev(Cells(1, 1), Like "*[0-z]*") というコードは通らず、 Cells(1, 2) = InStrRev(Cells(1, 1), Cells(1, 1) Like "*[0-z]*") というコードは返り値が0になってしまいます。 上記のような場合、どのようなコードが適していますでしょうか。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 開いているファイルの一覧表をマクロで作る

    エクセル2007です。 現在、開いているエクセルとワードのファイルの一覧表をマクロで作りたいのですが、できますか。

  • エクセルマクロでセルの結合をしたい

    エクセル2003です。 E列の値は昇順で並んでいます。 先頭E3行から下の行の値と比較し 同じ値の場合はセルを結合し 値が違う場合は結合しないで次の行を比較という処理を 最終行まで行いたいです。 (添付画像参照) 例えば E3-AA E4-BB E5-BB E6-CC E7-DD E8-EE E9-EE E10-EE E11-FF セルE4とE5を結合します セルE8とE9とE10を結合します。 次に結合した行と同じ行数のF列を結合します。 さらに結合した行と同じ行数のG列を結合します。 上記の場合 セルF4とF5を結合、 セルF8とF9とF10を結合します。 セルG4とG5を結合、 セルG8とG9とG10を結合します。 さらに結合した行と同じ行数のA列を結合します。 上記の場合 セルA4とA5を結合、 セルA8とA9とA10を結合します。 さらに結合したA列に数字を入力します A4とA5を結合したA4、A5セルには 2行を結合したので2と入力 セルA8とA9とA10を結合したA8、A9、A10セルには 3行を結合したので3と入力。 とりあえず、E列の結合を完成させてそのE列を 3行目から最終行までコピーして、 「形式を選択して貼付」の「書式」で 書式のみをF,G,A列にコピーすれば出来るのではと 以下の構文を作成しました。 セルの結合時は結合するセルの先頭の行の値が結合済セルの値に なるので最初にE列を結合していく時に A列に結合回数を記入しようと考えました。 ただ2行の結合は、A列に2と入力されたのですが 3行連結した時も2と入力されてしまったので改造しました。 テストデータでは期待しているようになったのですが 本番データでは結合される行が4行、5行等それ以上の行数が 結合する場合が有りこの構文ではなるべくしてなっているのですが 4行以上の行結合はA列の値はいずれも3になってしまいます。 (添付画像参照) どう修正すればいいか手段が考え付きません。 どのような方法がありますでしょうか? よろしくお願いします。 Sub セル結合2() '2013年10月25日 Dim 最終行 As Integer Dim 処理行 As Integer Dim 比較行 As Integer Dim 確認値 As Variant Dim 比較値 As Variant Dim 結合回数 Dim 戻行 Application.ScreenUpdating = False ThisWorkbook.Sheets("Sheet1").Select 最終行 = Cells(Rows.Count, 5).End(xlUp).Row 'F列の最終行を求めます。 Application.DisplayAlerts = False For 処理行 = 3 To 最終行 '3行目から最終行の前まで繰り返します。 比較行 = 処理行 + 1 '処理行の一つ下の行と比較します。→比較行とします。 確認値 = Cells(処理行, 5).MergeArea(1, 1).Value 'チェックする値を、確認値に代入します。 比較値 = Cells(比較行, 5) '比較する値を、比較値に代入します。 If 確認値 = 比較値 Then '値が同じかどうか Range(Cells(比較行, 5), Cells(処理行, 5)).MergeCells = True 結合回数 = Cells(処理行, 1) + 1 'セルを結合した回数 戻行 = 処理行 - 1 '処理行の1行上の行数を戻行とする Cells(処理行, 1) = 結合回数 '処理行のA列に結合回数を記入 Cells(比較行, 1) = 結合回数 '比較理行のA列に結合回数を記入 If Cells(処理行, 1) >= 3 Then 'もしも処理行のA列が3以上の場合 Cells(戻行, 1) = 結合回数 '戻り行のA列に結合回数をセット End If '同じでない場合は以下へ End If '同じでない場合は以下へ Next 処理行 Application.DisplayAlerts = True Application.ScreenUpdating = True Range(Cells(3, 5), Cells(最終行, 5)).Copy Range(Cells(3, 6), Cells(最終行, 6)).PasteSpecial Paste:=xlPasteFormats Range(Cells(3, 7), Cells(最終行, 7)).PasteSpecial Paste:=xlPasteFormats Range(Cells(3, 1), Cells(最終行, 1)).PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False MsgBox "終了しました" End Sub

  • [VBA] InStrRevとLikeの組合せ

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 先日、 http://okwave.jp/qa/q8321600.html で質問した内容なのですが、解決したと思ったらまだ未解決のため、再度質問いたします。 A列に住所のデータがあるのですが、形式がちょっと特殊で、 A1 千代田区千代田1-1-1-301千代田マンション1号棟 A2 千代田区千代田2-3-4 というな形になっています。(A1,A2はセル番地表示で、その文字列がセルにあるわけではありません) 並び順が、市名(区名)・町名・丁目・番地・号地・部屋番号・物件名となっています。 データの定義は、丁目・番地・号地・部屋番号については半角数字・市名(区名)・町名・物件名は数字やアルファベットを含むものであっても全角であることは担保されております。 戸建てであればいいのですが、集合住宅の場合、物件名と部屋番号が入れ替わってしまっています。 これを、できればA列には住所、B列には物件名・(全角スペース)・部屋番号とわけたいのです。   A           B 1 千代田区千代田1-1-1  千代田マンション1号棟 301 2 千代田区千代田2-3-4 という内容で、ご回答いただいた Sub SplitAddresses()   Dim i As Long, n As Integer, pos1 As Integer, pos2 As Integer, pos3 As Integer   For i = 1 To Cells(Rows.Count, "a").End(xlUp).Row     With Cells(i, "a")       For n = 0 To 9         pos1 = InStrRev(.Value, n)         If pos2 < pos1 Then pos2 = pos1       Next n       Cells(i, "b").Value = Right$(.Value, Len(.Value) - pos2)       .Value = Left$(.Value, pos2)       pos2 = 0       pos3 = InStrRev(.Value, "-")       If pos3 And Cells(i, "b").Value <> "" Then         Cells(i, "b").Value = Cells(i, "b").Value & " " & Right$(.Value, Len(.Value) - pos3)         .Value = Left$(.Value, pos3 - 1)       End If     End With   Next i   Columns("a:b").AutoFit End Sub というコードでうまくいくと思ったのですが、 千代田区千代田1-2-3-4F千代田マンション1号棟 千代田区千代田1-1-1-A千代田マンション1号棟 といったデータも存在し、For n = 0 To 9ではまかなえないことがわかりました。 (数字の部屋番号だけではなく、4FやAなど、アルファベットの部屋番号が存在するということです) 数字だけではなく、半角英数字を末尾から検査し、その文字列がある位置を割り出す必要があるのですが、InStrRev関数とLike演算子を組み合わせて、返り値をpos1に代入しようと思ったもののうまくいきません。 ひとまず、返り値の確認のため、下記のようなコードを書きましたが、 Cells(1, 2) = InStrRev(Cells(1, 1), Like "*[0-z]*") というコードは通らず、 Cells(1, 2) = InStrRev(Cells(1, 1), Cells(1, 1) Like "*[0-z]*") というコードは返り値が0になってしまいます。 上記のような場合、どのようなコードが適していますでしょうか。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • [VBA] InStrRevとLikeの組合せ

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 先日、 http://okwave.jp/qa/q8321600.html で質問した内容なのですが、解決したと思ったらまだ未解決のため、再度質問いたします。 A列に住所のデータがあるのですが、形式がちょっと特殊で、 A1 千代田区千代田1-1-1-301千代田マンション1号棟 A2 千代田区千代田2-3-4 というな形になっています。(A1,A2はセル番地表示で、その文字列がセルにあるわけではありません) 並び順が、市名(区名)・町名・丁目・番地・号地・部屋番号・物件名となっています。 データの定義は、丁目・番地・号地・部屋番号については半角数字・市名(区名)・町名・物件名は数字やアルファベットを含むものであっても全角であることは担保されております。 戸建てであればいいのですが、集合住宅の場合、物件名と部屋番号が入れ替わってしまっています。 これを、できればA列には住所、B列には物件名・(全角スペース)・部屋番号とわけたいのです。   A           B 1 千代田区千代田1-1-1  千代田マンション1号棟 301 2 千代田区千代田2-3-4 という内容で、ご回答いただいた Sub SplitAddresses()   Dim i As Long, n As Integer, pos1 As Integer, pos2 As Integer, pos3 As Integer   For i = 1 To Cells(Rows.Count, "a").End(xlUp).Row     With Cells(i, "a")       For n = 0 To 9         pos1 = InStrRev(.Value, n)         If pos2 < pos1 Then pos2 = pos1       Next n       Cells(i, "b").Value = Right$(.Value, Len(.Value) - pos2)       .Value = Left$(.Value, pos2)       pos2 = 0       pos3 = InStrRev(.Value, "-")       If pos3 And Cells(i, "b").Value <> "" Then         Cells(i, "b").Value = Cells(i, "b").Value & " " & Right$(.Value, Len(.Value) - pos3)         .Value = Left$(.Value, pos3 - 1)       End If     End With   Next i   Columns("a:b").AutoFit End Sub というコードでうまくいくと思ったのですが、 千代田区千代田1-2-3-4F千代田マンション1号棟 千代田区千代田1-1-1-A千代田マンション1号棟 といったデータも存在し、For n = 0 To 9ではまかなえないことがわかりました。 (数字の部屋番号だけではなく、4FやAなど、アルファベットの部屋番号が存在するということです) 数字だけではなく、半角英数字を末尾から検査し、その文字列がある位置を割り出す必要があるのですが、InStrRev関数とLike演算子を組み合わせて、返り値をpos1に代入しようと思ったもののうまくいきません。 ひとまず、返り値の確認のため、下記のようなコードを書きましたが、 Cells(1, 2) = InStrRev(Cells(1, 1), Like "*[0-z]*") というコードは通らず、 Cells(1, 2) = InStrRev(Cells(1, 1), Cells(1, 1) Like "*[0-z]*") というコードは返り値が0になってしまいます。 上記のような場合、どのようなコードが適していますでしょうか。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 【VBA】指定の範囲から特定の文字列を探す

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 A列に"aa"の文字列が含まれる場合、その行を非表示にして、印刷する。 "aa"の文字列が無かった場合は印刷しない。 というコードを書きたいのですが、分からず困っています。 Dim EndRow As Long Dim i As Long EndRow = cells(Rows.Count, 1).End(xlup).Row  For i = 1 To EndRow   If Cells(i, 1) = "aa" Then Rows(i).EntireRow.Hidden = 1  Next で一行ずつ調べていって非表示にすることはできましたが、その後がわかりません。 上記のような場合、どのようなコードが適していますでしょうか。 なお、上記For Next文は必ず使いたいというわけではありません。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 【VBA】指定の範囲から特定の文字列を探す

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 A列に"aa"の文字列が含まれる場合、その行を非表示にして、印刷する。 "aa"の文字列が無かった場合は印刷しない。 というコードを書きたいのですが、分からず困っています。 Dim EndRow As Long Dim i As Long EndRow = cells(Rows.Count, 1).End(xlup).Row  For i = 1 To EndRow   If Cells(i, 1) = "aa" Then Rows(i).EntireRow.Hidden = 1  Next で一行ずつ調べていって非表示にすることはできましたが、その後がわかりません。 上記のような場合、どのようなコードが適していますでしょうか。 なお、上記For Next文は必ず使いたいというわけではありません。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 日付が表示されているセルのみ範囲指定したい

    Excel2007でマクロ作成中の初心者です。 範囲指定がうまくいかない。 1)セルB30  =IF(A30="","",VLOOKUP(A30,表データ,2,FALSE))   セルB31  =IF(A30="","",VLOOKUP(A31,表データ,2,FALSE))    以下略  というように、セルB30~B60まで関数が入っており、  以下のように表示されています。  1   9月21日 2   9月22日    以下略    〃 29  10月19日 30  10月20日 31       ←(ここのセルは日付表示されず空欄。 関数 =IF(A60="","",VLOOKUP(A60,表データ,2,FALSE))が入っている) 2)以下のコードを実行すると Sub 範囲を選択() Range("B30").CurrentRegion.Select Selection.Resize(Selection.Rows.Count - 1).Select Selection.Offset(1, 0).Select Selection.Resize(Selection.Rows.Count - 1).Select End sub 1から31行まで選択されてしまします。これを30行目まで、日付の表示あるセルのみ 選択したいのですが、どうすればよろしいでしょうか

  • 日付が表示されているセルのみ範囲指定したい

    Excel2007でマクロ作成中の初心者です。 範囲指定がうまくいかない。 1)セルB30  =IF(A30="","",VLOOKUP(A30,表データ,2,FALSE))   セルB31  =IF(A30="","",VLOOKUP(A31,表データ,2,FALSE))    以下略  というように、セルB30~B60まで関数が入っており、  以下のように表示されています。  1   9月21日 2   9月22日    以下略    〃 29  10月19日 30  10月20日 31       ←(ここのセルは日付表示されず空欄。 関数 =IF(A60="","",VLOOKUP(A60,表データ,2,FALSE))が入っている) 2)以下のコードを実行すると Sub 範囲を選択() Range("B30").CurrentRegion.Select Selection.Resize(Selection.Rows.Count - 1).Select Selection.Offset(1, 0).Select Selection.Resize(Selection.Rows.Count - 1).Select End sub 1から31行まで選択されてしまします。これを30行目まで、日付の表示あるセルのみ 選択したいのですが、どうすればよろしいでしょうか

  • Do Loopの処理結果が思うように得られません。

    VBAの知識がなく、コピペで作業しています。 笑わないで見てください。 作業内容は 「集計用フォルダ内にあるファイル(60個くらいあります)の情報を取得してデータベース化する」 です。 下記のプログラムを作ってみたのですが、ThisWorkbookに各ファイルのデータが 一行ずつずれて貼り付けられてしまい、最終行の一つ下に貼り付けられていません。 画面を見ていると、ファイルは一つずつ開いて閉じてを繰り返しているのですが、 貼り付けは一括で行われます。 ThisWorkbookの扱いで、散々苦労して作ったのですが、あと一歩というところで つまづいてしまいました。 アドバイス、よろしくお願いいたします。 Sub フォルダ内エクセルファイル値取り出し() Dim FName As String Dim FPath As String Dim cnt As Integer Dim r As Long '画面更新オフ Application.ScreenUpdating = False '累積データがある列のデータ下端を取得 cnt = Cells(Rows.Count, 1).End(xlDown).Offset(1, 0).Row FPath = "C:\Documents and Settings\******\デスクトップ\集計用フォルダ(このフォルダは書込み専用です)" '対象フォルダのパス ChDir FPath FName = Dir("*.xls") Do While FName <> "" Workbooks.Open FName Worksheets(1).Range(Selection, ActiveCell.SpecialCells(xlLastCell)) _ .Copy Destination:=ThisWorkbook.Sheets(1).Cells(cnt, 1) cnt = cnt + 1 ActiveWorkbook.Close FName = Dir() Loop '画面更新オン Application.ScreenUpdating = True End Sub

  • Do Loopの処理結果が思うように得られません。

    VBAの知識がなく、コピペで作業しています。 笑わないで見てください。 作業内容は 「集計用フォルダ内にあるファイル(60個くらいあります)の情報を取得してデータベース化する」 です。 下記のプログラムを作ってみたのですが、ThisWorkbookに各ファイルのデータが 一行ずつずれて貼り付けられてしまい、最終行の一つ下に貼り付けられていません。 画面を見ていると、ファイルは一つずつ開いて閉じてを繰り返しているのですが、 貼り付けは一括で行われます。 ThisWorkbookの扱いで、散々苦労して作ったのですが、あと一歩というところで つまづいてしまいました。 アドバイス、よろしくお願いいたします。 Sub フォルダ内エクセルファイル値取り出し() Dim FName As String Dim FPath As String Dim cnt As Integer Dim r As Long '画面更新オフ Application.ScreenUpdating = False '累積データがある列のデータ下端を取得 cnt = Cells(Rows.Count, 1).End(xlDown).Offset(1, 0).Row FPath = "C:\Documents and Settings\******\デスクトップ\集計用フォルダ(このフォルダは書込み専用です)" '対象フォルダのパス ChDir FPath FName = Dir("*.xls") Do While FName <> "" Workbooks.Open FName Worksheets(1).Range(Selection, ActiveCell.SpecialCells(xlLastCell)) _ .Copy Destination:=ThisWorkbook.Sheets(1).Cells(cnt, 1) cnt = cnt + 1 ActiveWorkbook.Close FName = Dir() Loop '画面更新オン Application.ScreenUpdating = True End Sub

  • エクセルマクロでinputboxメソッドゼロ入力

    エクセル2007です。 以下のマクロで、inputboxメソッドで質問させると、キャンセルボタンを押すと、うまいぐあいに止まります。 しかし、0を押しても、止まってしまいます。本当は、C2にゼロと表示させたいのです。 Sub 練習() Dim myR myR = Application.InputBox(prompt:="数量を入力しなさい", Type:=1) If myR = False Then Exit Sub Range("C2").Value = myR End Sub

  • VBA 入力日付を取得し、今日までの日数を取得

    コンボボックスに日付(30日前まで)が入っています。 For i = 0 To 30 ComboBox1.AddItem Date - i Next そして、選択された日付から今日までの日数で ループを実行させたいのです。 例 9/28  今日 10/30 → 30回数実行? 考え方が良く分からなかったため、 コンボボックスの値と比較しようとしました。 Function Count() Dim SelectDate As Date Dim Today As Date SelectDate = ComboBox1.Value Today = Date For i = 0 To SelectDate = Today Step 1 SelectDate = DateAdd("d", i, SelectDate) '(”d”は日数) Next MsgBox "見つかりました" & J EndNumber = J Count = EndNumber End Function これでは、何を選択しても 上手くいきません(思い通りの数値が出ません) 何が悪いのでしょうか? 何か良い方法がありましたら、知恵をお貸しください。

  • VBA 入力日付を取得し、今日までの日数を取得

    コンボボックスに日付(30日前まで)が入っています。 For i = 0 To 30 ComboBox1.AddItem Date - i Next そして、選択された日付から今日までの日数で ループを実行させたいのです。 例 9/28  今日 10/30 → 30回数実行? 考え方が良く分からなかったため、 コンボボックスの値と比較しようとしました。 Function Count() Dim SelectDate As Date Dim Today As Date SelectDate = ComboBox1.Value Today = Date For i = 0 To SelectDate = Today Step 1 SelectDate = DateAdd("d", i, SelectDate) '(”d”は日数) Next MsgBox "見つかりました" & J EndNumber = J Count = EndNumber End Function これでは、何を選択しても 上手くいきません(思い通りの数値が出ません) 何が悪いのでしょうか? 何か良い方法がありましたら、知恵をお貸しください。