• 締切済み

アドバンスフィルターについて

住所録を管理できるシステムを作っています。 2番目のシートを検索&結果表示のシート、3番目~10番目のシートにはユーザーフォームを使ってデータを入力して蓄積していくシートとしています。 検索はアドバンスフィルターを使っています。 Dim Rng As Range Dim cRng As Range Dim sh As Variant With Sheets(2).Select.Range("A13:L10000").ClearContents For Each sh In Array(Sheets(3), Sheets(4), Sheets(5), Sheets(6), Sheets(7), Sheets(8), Sheets(9), Sheets(10)) Set cRng = .Range("A65536").End(xlUp).Offset(1) If cRng.Row < 13 Then Set cRng = .Range("A13") End If sh.Range("A2:L3002").AdvancedFilterAction:=xlFilterCopy, _ CriteriaRange:=.Range("A6:L7"), CopyToRange:=cRng, _ Unique:=False cRng.Resize(, 17).Clear Next sh End With End Sub このマクロでは、ユーザーフォームを使って入力していったデータを検索することはできるのですが、他のエクセルシートからデータをコピー&ペーストしたり、直接入力をすると検索できません。 何が原因なのでしょうか。教えてください。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

>空白の検出について、うまく説明できないのですが、 >自分のイメージしているものは、検索値に何もない(空白)の場合 >検索するシートの入力値、空白すべてを表示させるのではなく、 >入力値のみを表示させたいと思っています せっかく、お礼側に書いていただいきましたが、一体、どのようになるのか、ずっと考えても、さっぱり分かりません。具体性がないものに関して、こちらも回答のしようがありません。その都度、検索範囲を変えればよいと思います。 もともと、常識的は、検索値が、12項目もあるというのか不自然です。だから、その中で非該当の検索値があるというもの当然の話です。 ただ、#6で回答した以上に該当する現象と例を、私に自分で考えて探して直せ、とおっしゃっているわけだと思いますが、内容を明かさずには、もう限界があります。会社では、そういう方式が良くあると聞きますが、あいにく、私は、会社員の経験があっても、フリーに近い状態でやっきましたし、現在はフリーですから、こういう方式には不慣れです。私の書いたマクロについてはこちら側が出来る限りのことはしますが、それ以上に、手作業ではうまく行っているのではないかと思いますが、そういう部分は、具体的に公開していただかないと、私には無理です。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

>うまく検索されましたが、空白も検出されてしまいました。 検索式の問題でしょうから、そこまでは正直な所分かりません。検索式の問題は、何を入れているのか、実際は分かっていないのですから、こちらで解答を出すことは不可能に近いです。そういう可能性をいくつも出さなくてはなりません。こちらのマクロの問題というなら、まだ何ともいいようもあるのでずか、マクロ自体の問題とも言えそうにもありません。 もともと「空白の検出」という意味が分からないのです。 可能性のいくつかを挙げてみます。  sh.Range("A2:L3002") '←この範囲が違っている?  でしたら、   ↓ With sh.Range("A2").CurrentRegion   Set myData = sh.Range("A2", .Cells(.Count)) End With      myData.AdvancedFilter _    ・    ・    ・ >CriteriaRange:=.Range("A6:L7") それとも、 つまり、AからLまではないということですか? もしそうなら、 .Range("A6:L7")    ↓ .Range("A6", Cells(7,Columns.Count).End(xlToLeft)) それとも、検索式の入れる範囲に空白値が入っている。 ならば、 For Each c in .Range("A6", Cells(7,Columns.Count).End(xlToLeft))  If Trim(c.Value) ="" Then    c.ClearnContents  End If Next なお、このご質問は、ページとしては、9ページまで来ていますので、補足に入れても、気がつくまでには時間が掛かることがあります。お礼側に一報を入れてくれればこちらの連絡が入りますが、そうでなければ、返事は遅くなることがあります。ただし、あえてお礼を要求するわけではありません。単に、ここの板の機能的な面を示しているだけです。

noa8998
質問者

お礼

お礼側に入れると連絡がはいるのですね。知りませんでした。 本当にたびたび申し訳ありません。 空白の検出について、うまく説明できないのですが、 自分のイメージしているものは、検索値に何もない(空白)の場合 検索するシートの入力値、空白すべてを表示させるのではなく、 入力値のみを表示させたいと思っています。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

返事遅くなってすみません。 >ユーザーフォームでの転記がすべてテキストになってしまうのが問題でした。 >そうすると転記部分のマクロをかえなければなりませんね。 テキストボックスで、どのようにいれていますか? 書式が残ってさえいれば、一旦入力した後に、Range に、Value 値を入れればよかったような気がしますね。 例えばですが、  .Range("A6:L7").Value = .Range("A6:L7").Value '←こういうように入れます。  sh.Range("A2:L3002").AdvancedFilterAction:=xlFilterCopy, _  CriteriaRange:=.Range("A6:L7"), CopyToRange:=cRng, _  Unique:=False

noa8998
質問者

補足

うまく検索されましたが、空白も検出されてしまいました。 空白を省くにはどのようにしたらよいでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

私の文章がわかりにくいでしょうか。 つまり、検索値も被検索値のデータも、みんな同じ書式やデータ型でないといけません。 ワークシート上では、同じにみえても、片方が文字型で片方が日付のシリアル値では検索はされない可能性があります。 それらを、どちらも統一したいのです。 直接入力してしまうと、その入力値は、日付なら、自動的にシリアル値に変わってしまいますから、元の被検索値側もシリアル値でなければなりません。 書式--セル--ダイアログで、数値になっているのか確認していただいたほうがよいですね。

noa8998
質問者

補足

内容がようやくわかりました。理解が遅く申し訳ありません。 どうやら検索値を入力する際に、ユーザーフォームでの転記がすべてテキストになってしまうのが問題でした。ユーザーフォームで検索値をいれるのではなく、CriteriaRangeに直接入力をすると検索できました。そうすると転記部分のマクロをかえなければなりませんね。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

質問の内容が分かりました。おっしゃられるとおり、セルとテキストボックスがリンクしているかもしれません。 入力するシートをユーザーフォームのリストより選択し、各シートそれぞれ最終行にデータを入力していくようにしています。 Sheets(sn).Range("E" & 最終行).Value = TextBox6 Textbox6は日付です。 検索値自体をユーザーフォームで入力するようにしているのが問題なのでしょうか? >セルとテキストボックスがリンクしているかもしれません。 ControlSource にセルのアドレスを入れているということでしょうか? それはお分かりになっていませんか? もう一度、お聞きしなければなりませんが、日付値だったのでしょうか? その部分が確認できないと、次のアドバイスが曖昧になってしまいます。 例えば、平成22年6月20日 が検索値と、2010/6/20 と、06/20 とでは、関数とは違い、うまく検索できなかったように思います。それに、下位バージョンでは、もっと違う現象が現れます。これは、昔のVBA上級問題集に出てくる質問です。 >入力するシートをユーザーフォームのリストより選択し、各シートそれぞれ最終行にデータを入力していくようにしています。 どちらでもよいことだと思いますが、確かに、 Sheets(sn).Range("E" & 最終行).Value = TextBox6.Text のほうが、確実かもしれません。 問題は、その後のことです。 >検索値自体をユーザーフォームで入力するようにしているのが問題なのでしょうか? そんなことはありません。 CriteriaRangeに使われる Range("A6:L7") マクロで処理する方法もありますが、それよりも、本来、この部分のセルの書式と、データの書式と合わせてあげるようにすればよいのです。良く調べ、試してみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

マクロのコードについては、動いているなら、それはそれで、今の段階ではいいのです。 私がお聞きしているのは、検索値の問題です。日付など、貼りつけたりすると、書式などが変わるものではないか、と考えています。前回の質問にもつながっていますが、UserForm で貼り付ける部分が出てきません。もしかしたら、セルとテキストボックスがリンクしているのではないかと思いました。日付の検索は、難しい部分があります。 日付や時間は、入力した値に対して、マクロで貼りつけたりする場合は、値や型の変化(キャスティング)は起こりませんが、コピー&ペーストや手入力した時に、書式とともに表示が変わっているのではないか、と考えました。

noa8998
質問者

補足

質問の内容が分かりました。おっしゃられるとおり、セルとテキストボックスがリンクしているかもしれません。 入力するシートをユーザーフォームのリストより選択し、各シートそれぞれ最終行にデータを入力していくようにしています。 Sheets(sn).Range("E" & 最終行).Value = TextBox6 Textbox6は日付です。 検索値自体をユーザーフォームで入力するようにしているのが問題なのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

掲示したコードそのものは、貼りつけ時のミスなのか、そのままでは動くようには思いませんが、直接の質問ではありませんから、それは無視させていただきまきますが、 >他のエクセルシートからデータをコピー&ペーストしたり、直接入力をすると検索できません。 ふつうはありえませんから、何か書式が変わったりしているのかもしれません。 検索値が、日付などではありませんか? もしそうですと、日付自体は、小数点は混じっていませんから、検索は出来るのですが、確か、書式を合わせないといけませんから、 クライテリア部分は、マクロの起動時に、必ず、書式を合わせなくてはならないかもしれませんね。 だから、ループの中でクライテリアを取るのではなくて、ループの前に、書式をあわせて、変数にいれて、AdvancedFilter のCriteriaRange:=変数 と当てたほうがよいですね。

noa8998
質問者

補足

実際のコードはこれを使用しています。 Sub 検索() Dim Rng As Range Dim cRng As Range Dim sh As Variant With Sheets(2) .Select Application.ScreenUpdating = False .Range("A13:L10000").ClearContents For Each sh In Array(Sheets(3), Sheets(4), Sheets(5), Sheets(6), Sheets(7), Sheets(8), Sheets(9), Sheets(10)) Set cRng = .Range("A65536").End(xlUp).Offset(1) If cRng.Row < 13 Then Set cRng = .Range("A13") End If sh.Range("A2:L3002").AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=.Range("A6:L7"), _ CopyToRange:=cRng, _ Unique:=False cRng.Resize(, 17).Clear Next sh End With Application.ScreenUpdating = True End Sub 検索値を指定せずに検索した場合もやはりコピー&ペーストのデータは検索にかかりませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel 文字抽出マクロの編集についてですが・・・

    マクロで指定した文字を含むデータを抽出するマクロを 作っていたのですが、うまく作動しません。 どこが悪いか教えてください。 Sub 指定した文字データの抽出() Dim strMoji As String strMoji = InputBox("検索文字を入力してください") strMoji = "*" & strMoji & "*" Sheets("Sheet2").Activate Cells.Clear With Sheets("Sheet1") .Range("A2").AutoFilter Filde:=3, criterial:=strMoji .Range("A2").CurrentRegion.Copy _ Destination:=Sheets("Sheet2").Range("A2") .Range("A2").AutoFilter End With Sheets("Sheet2").Columns("A:D").AutoFit End Sub

  • エクセルVBAマクロの質問です。

    マクロ初心者です。行き詰まってます。 sheet1には300件程度のデータがあります。 このデータの3列目の値を、VLOOKUPでsheet3のA1:B30範囲から参照します。そこで取得した回数分、sheet1の各行のデータをsheet2にコピーしたいんです。 そこで、コード文を作ってみましたが、マクロがうまく動きません。 すみませんが、お知恵を貸していただけないでしょうか? Dim Z as Long Dim L As Long Dim P As Long Dim Kensaku As String Dim M4 As Range Dim PRow As Long Dim i As Long Set M4 =Sheets(“sheet3”).Range(“A1:B30“) L = Sheets(“sheet1”).Range(“A1”).End(xlup).Row For Z = 1 to L-1 Kensaku = Sheets(“sheet1”).Cells(Z+1,3).Value P=Worksheetfunction.Vlookup(Kensaku,M4,2,False)    For i = 1 to P      Prow=Sheets(“sheet2”).Range("A1").End(xlDown).Row      Sheets(“sheet1”).Rows(Z+1).Copy Sheets(“sheet2”).Rows(Prow)    Nexti Next Z

  • エクセルVBA抽出がうまく出来ません

    エクセル2013VBA初心者です。 入力シートからDBシートへ、DBシートから印刷シートへのデータ転記と印刷、入力内容のクリアまでは出来るようになりました。 DBシートの検索を行い、記録内容を入力シートに転記する抽出を行いたいのですが、下記構文を書いたところで問題が発生しました。 If Sh2.Range("A & i").Value = j And Sh2.Range("B & i").Value = k Then  でとまります。メッセージは ‘Range’メソッドは失敗しました:‘Workshieet’オブジェクトというものです。 やろうとしていることは、入力シートに設けた“E12”と”G12”の二つの検索項目をキーにDBシートの行を特定し、この行の内容を入力シートに反映しようということです。 入力シートの検索項目“E12”、 ”G12”はそれぞれDBシートのA列、B列に格納されている項目で、年度と連番です。サンプルとして入力シート"C5"に抽出しようとしているDBシートD列は申請者名です。 恐れ入りますがよろしくご教示頂きたく、お願い申し上げます。 Sub DBシートから力情報を抽出する () Dim Sh1 As Worksheet Dim Sh2 As Worksheet Dim i As Long Dim j As Long Dim k As Long Set Sh1 = Worksheets("入力") Set Sh2 = Worksheets("DB") j = Sh1.Range("E12").Value k = Sh1.Range("G12").Value With Sh2 For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row If Sh2.Range("A & i").Value = j And Sh2.Range("B & i").Value = k Then Sh1.Range("C5").Value = Sh2.Range("D & i").Value End If Next  End With End Sub

  • ロートルの初心者です、VBAについての質問です。

    エクセル2003で以下のVBAを色々な資料を基に、「テスト2」のシートに条件検索されたデータ、マクロ起動(?)で「入力履歴」に追記されるものを作成しました。 Sub prog() Dim myFld As String, myCri As String Dim myRow As Long Dim Sh2 As Worksheet, Sh3 As Worksheet Set Sh2 = Worksheets("テスト2") Set Sh3 = Worksheets("入力履歴") With Sh2 myRow = .Range("D" & Rows.Count).End(xlUp).Row Range("A1:H" & myRow).Copy Destination:=Sh3.Range("A" & Rows.Count).End(xlUp).Offset(1) End With Sh3.Activate Range("A1").Select End Sub ここで問題となるのが抽出データには関数が含まれているため「入力履歴」シートに書き込まれたデータにもそのまま貼り付けられるので「#A/N」となってしまいます。 Range("A1:H" & myRow).Copy Destination:=Sh3.Range("A" & Rows.Count).End(xlUp).Offset(1)の 「Destination」を変えれば良いかと思ったのですが・・・、うまくいきません。 エクセルでいう、「形式を選択して貼り付け→値」をやりたいのですが書き方がわかりません。 ロートルの初心者によろしく愛の手をお願い申します。 PS:説明文があると助かります。

  • Match関数がうまく機能していない??

    すみません。また教えて下さい。 過去ログを見てシート1にあったデータをシート4にあるデータと照らし合わせてすでにあれば書き換え、なければ追加というようにできるようにしたく過去ログを参考にしてやったのですが、どうしてもエラーが出てしまいます。 Private Sub aa() Dim intlastrow1 As Integer Dim strb As String Dim longlastrow1 As Long intlastrow1 = Sheets(1).Range("A7").End(xlDown).Row longlastrow1 = Sheets(4).Range("A1").End(xlDown).Row Dim c As Object Dim rtn As Variant Dim d As Integer With Sheets(4) .Select For Each c In .Range("A1", "A" & longlastrow1) rtn = Application.Match(c.Value, Sheets(1).Range("A7:A" & intlastrow1), 0) d = c.Row strb = Cells(d, "A").Value If IsError(rtn) Then With Sheets(4).Cells(longlastrow1 + 1, "A") .Value = strb With .Font .Name = "MS Pゴシック" .Bold = False .Size = 8 End With End With Sheets(4).Cells(longlastrow1 + 1, "B").Value = Sheets(1).Range("A2").Value Sheets(4).Cells(longlastrow1 + 1, "F").Value = ShowFormula(Sheet1.Range(Cells(d, "J"), Cells(d, "N"))) longlastrow1 = longlastrow1 + 1 End If If Not IsError(rtn) Then Exit Sub End If Next c End With End Sub 以上のように組んだのですがうまくいきません。 具体的に言うとシート1のA7よりしたに名前が並んでいる(山田、鈴木・・・)とお考え下さい(シート4のA2以下にも同様に名前が並んでいる)。字数の関係で判定後の処理が不十分になっています。

  • フィルタオプションの設定の条件における文字について

    フィルタオプションの設定の検索条件範囲で指定した条件が半角・全角や大文字・小文字にかかわらず抽出するということはできますか? 商品情報というブックがあり、抽出シート(1枚目)と2枚目のシートにデータが入っています。 2枚目のシートのフィールド名を抽出シートのA1を基準に貼り付けています。 条件をA1:I3あたりに入力し、2枚目のシートの条件に合うものを抽出シートのA5以降に取り出すマクロを書いています。次回マクロを起動させたときにA5以降にデータがあれば削除させます。 いろいろな方に教えていただいて下記のようにできあがったのですが、ちょっと問題があって 質問しています。 Dim myRow1 As Long, myRow2 As Long myRow1 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row myRow2 = Sheets("抽出").Range("A" & Rows.Count).End(xlUp).Row If myRow2 >= 5 Then Sheets("抽出").Range("A5:I" & myRow2).ClearContents Sheets("抽出").Range("A5:I" & myRow2).ClearFormats Sheets(2).Range("A1:I" & myRow1).AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=Sheets("抽出").Range("A1").CurrentRegion, _ CopyToRange:=Sheets("抽出").Range("A5"), Unique:=False End Sub 現状では元データが全角だと半角で入力すると抽出されず、元データが小文字だと大文字は抽出されません。 いちいち元データの状態を把握しての検索になってしまいます。 このマクロを修正して全角・半角もしくは小文字・大文字にかかわらず抽出できるようにすることは可能でしょうか? どなたかご存知の方がいらっしゃれば教えていただけないでしょうか?

  • オートフィルタを操作するマクロについて

    いつもお世話になっております。 現在オートフィルタを操作するマクロを作成中ですが、うまく動作してくれず、悩んでおります。 「検索画面」シートのA1から文字で検索条件を入力し、その答えを「元データ」のシートでオートフィルタを使って導き出すことをしています。 私が作ったマクロは以下の通りです。 Sub フィルタオプション設定() Dim LastRow As Long, LastColumn As Long Dim myData As Range Dim myCriteria As Range Set myCriteria = Worksheets("検索画面").Range("A1").CurrentRegion Sheets("元データ").Select Selection.AutoFilter Field:=26, Criteria1:=myCriteria, Operator:=xlOr End Sub これですと、「~を含む」という答えがでないのと、複数設定しても最後に入力した文字しか検索をかけないのです。 結局のところ、 (1)複数に加え、 (2)「~を含む」という条件で、 (3)別シートにあるデータをオートフィルタによって操作する マクロをご教示ください! よろしくお願いいたします。

  • エクセルVBA 半角・全角関係無く検索する方法

    エクセル2000使用 シートにあるデータを検索のプログラムを作成してます。(一応検索可能) シート内のデータは半角・全角両方使用されているので、検索の際、半角なら半角で入力したものしか出ないようになっています。 半角でも全角でも検索したら両方でるプログラムって出来ないですか? 初心者なのでわかりません。(以下のプログラムも色んなところのを参考にしているので内容もあまりわかっていない状況です・・・)わかる方宜しくお願いいたします。(プログラム長かったので一部省略しています) Sub 検索_Click() Dim kw As String Dim jk As String   kw = 検索画面.検索名.Value jk = "*" & kw & "*" Application.ScreenUpdating = False Sheets("sheet2").Activate Cells.Clear If 検索画面.件名.Value = True Then With Sheets("リスト") .Range("A2").AutoFilter field:=4, _ Criteria1:=jk .Range("A2").CurrentRegion.Copy _ destination:=Sheets("sheet2").Range("A3") .Range("A3").AutoFilter End With End If End Sub

  • 転記したデータを基にして検索表示させる方法

    下記のようにシートAのデータをシートB(A列)へ転記した後に、転記したデータを基にしてデータベースから検索した結果をシートB(B列)に表示したいのですが、マクロを実行すると「型が一致しません」というエラーになります。 どのようにしたらエラーにならないのか… どうぞよろしくお願いします。 Sub レコード転記() Dim myTbl As Range, sakiRng As Range Set myTbl = Sheets("A").Range("B6:B81") Set sakiRng = Sheets("B").Range("A5") myTbl.Copy sakiRng.PasteSpecial xlPasteAll sakiRng.PasteSpecial xlPasteColumnWidths End Sub Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim r As Variant, myRange As Range Set myRange = Workbooks("入力フォーム.xls").Worksheets("一覧表").Range("社名") With Target If Target.Column = 1 Then r = Application.WorksheetFunction _ .Match(Target.Value, myRange, 0) Cells(Target.Row, 2) = Workbooks("入力フォーム.xls").Worksheets("一覧表").Range("N1").Offset(r - 1).Value End If End With End Sub

  • コンボボックスのvba 作成の仕方

    私は、月別にデータを作っています。なので、月ごとにデータを見られるようなボタンを作成したいです。 現在組んでいるマクロは、ボタン(普通の四角いもの)を押すごとに、翌月データをコピペするというものになっています。 (以下、現在のコード記載) Sub auto_open() Dim wkm As Long Dim wkn As Long Dim wkt As Variant Dim wks As Variant Dim dt As Date Dim mi As Integer dt = Date mi = Month(dt) wkt = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9) wks = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) wkm = wkt(mi) Call Macro1(wkm) Sheets("住宅資金").Range("A3") = wks(mi) End Sub Sub Next_Month() Dim wks As Variant Dim dt As Date Dim mi As Integer wks = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9) If Sheets("住宅資金").Range("A3") = 12 Then wkm = 10 Else wkm = wks(Sheets("住宅資金").Range("A3") + 1) End If Call Macro1(wkm) wks = Array(0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3) Sheets("住宅資金").Range("A3") = wks(wkm) End Sub Sub Macro1(ByVal wkm As Long) With Sheets("入力") Sheets("住宅資金").Range("D5:D23").Value = .Range("C5:C23").Offset(, wkm - 1).Value Sheets("住宅資金").Range("J5:J23").Value = .Range("C28:C46").Offset(, wkm - 1).Value Sheets("住宅資金").Range("P5:P23").Value = .Range("T28:T46").Offset(, wkm - 1).Value Sheets("住宅資金").Range("O5:O23").Value = .Range("T5:T23").Offset(, wkm - 1).Value Sheets("住宅資金").Range("F5:F23").Value = .Range("O5:O23").Value Sheets("住宅資金").Range("L5:L23").Value = .Range("O28:O46").Value End With With Sheets("目標") Sheets("住宅資金").Range("C5:C23").Value = .Range("B4:B22").Offset(, wkm - 1).Value Sheets("住宅資金").Range("I5:I23").Value = .Range("B27:B45").Offset(, wkm - 1).Value End With With Sheets("前年同期") Sheets("住宅資金").Range("H5:H23").Value = .Range("C5:C23").Offset(, wkm - 1).Value Sheets("住宅資金").Range("N5:N23").Value = .Range("C28:C46").Offset(, wkm - 1).Value Sheets("住宅資金").Range("Q5:Q23").Value = .Range("T5:T23").Offset(, wkm - 1).Value End With End Sub さて、現在作りたいと思っているものを以下に記述します。 普通の四角いボタンではなく、コンボボックスを使用して、矢印(▼)を押すことによってリストが表れ、 「1月」に合わせたら1月のデータがコピペされる、「8月」に合わせたら8月のデータがコピペされる、というものを作りたいと思っています。 以下のような空欄の表を作成したシートがあります。        A    B    C   D 1      目標  実績  …   … 2 ○支所   3 △支所 4  ・ 5  ・ 6  ・ 別のシートに、手入力した月別のデータがあります。 空欄のシートのどこかにコンボボックスを作り、別シートの○月のデータを貼り付けられるようにしたいと思っています。 コンボボックスの作り方がわからず、後一歩のところでつまずいてしまいました。 知恵をお貸しください。 よろしくお願いいたします。

このQ&Aのポイント
  • トナーを交換してもトナーコウカンのメッセージが表示されて印刷できない問題について、ブラザー製品のHL-L2375DWについて相談します。
  • Windows 10 Home 21H2で、有線LAN接続している環境でトナーコウカンのエラーメッセージが表示され、印刷できません。関連するソフトやアプリはありません。電話回線はひかり回線です。
  • ブラザー製品のHL-L2375DWでトナーを交換した後もトナーコウカンのメッセージが表示され、印刷ができません。Windows 10 Home 21H2で有線LAN接続しており、関連するソフトやアプリはありません。電話回線はひかり回線です。
回答を見る

専門家に質問してみよう