重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel VBAで、セルに入力した値によって処理内容を変える方法を探しています。

①Accessにデータがあります。
②Excel VBAでAccessに接続して、Excelのワークシートにデータを表示します。
 (ここまでは出来ました)
③Excel VBAに、下記の様に記述しています。

************************

Sub SelectDB1()

Dim strFileName As String
strFileName = "Database1.accdb"

Dim adoCn As Object
Set adoCn = CreateObject("ADODB.Connection")
adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\" & strFileName & ";"

Dim adoRs As Object
Set adoRs = CreateObject("ADODB.Recordset")

Dim strSQL As String
strSQL = "SELECT 市町村人口分布 FROM Sheet1 WHERE 年齢>35" '★←可変させたい箇所★

adoRs.Open strSQL, adoCn
Worksheets(1).Range("A1").CopyFromRecordset adoRs

adoRs.Close
adoCn.Close

Set adoRs = Nothing
Set adoCn = Nothing

End Sub

************************

<やりたいこと>

VBAの下記部分で「年齢>35」と記述していますが、年齢を可変させたいです。
----------------------
Dim strSQL As String
strSQL = "SELECT 市町村人口分布 FROM Sheet1 WHERE 年齢>35"
----------------------
VBAで直接書き直せば済む事ですが、セルに値を入力し、
その値を参照するようにしたいのです。

実際には、「Sheet2」の「セルG6」に値を入力します。
そのセルに年齢を入力してマクロを実行出来るようにしたいです。

恐れ入りますが、どなたかお分かりの方がおられましたら、
ご教授いただけましたら幸いです。

宜しくお願い申し上げます。

A 回答 (1件)

strSQL = "SELECT 市町村人口分布 FROM Sheet1 WHERE 年齢>" & Worksheets("Sheet2").Range("G6").Value & ";"



みたいな感じでいいのではないでしょうか?
ダメかしら?
    • good
    • 0
この回答へのお礼

できました!!

分かる方にとっては、とても簡単な事だと思いますが、
調べてみてもさっぱり分かりませんでした。

助かりました。

ありがとうございました。

お礼日時:2019/05/12 23:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!