相対パスの方法をいっぱい書いてきましたが、そろそろ終わりを迎えそうです。
今回は、「取得データのファイルパスを自由に選びたい!」そんな要望に応えてみました。
取得データパスを自由に選ぶとは。
どういうことかというと、取得データをダイアログボックスを開いて選ぶってことです。
これができると、データの受け渡しがしやすくなるだけでなく、取得データの保存場所に制約がなくなることになります。
こんな画面です。
これで、取り込みたいデータを選択して「開く」とすると、パワークエリで読み込むデータに指定できるという仕組みです。
では、実際にどうやって作るのか見ていきましょう。
マクロの作り方
まず、開発タブからVisual Basicを選択して、VBAエディターを開きます。
こんな感じです。「挿入」タブから標準モジュールを挿入して書いていきます。これをコピーして貼り付けてもOKです。
Sub ファイルパス取得()
'文字列の変数をfPathと定義する。'
Dim fPath As String
'fPathは、選択したファイルネーム(ファイルパスのこと)である。'
fPath = Application.GetOpenFilename
'fPathが「Falese」の時(キャンセルしたとき)'
If fPath = "False" Then
'何もしない'
'条件に合わないとき(「False」でないとき)'
Else
'セル(3行2列目)にfPathを入れる)'
Cells(3, 2) = fPath
'条件式の終了'
End If
'マクロの終了'
End Sub
あとは、ボタンを設置して、押せばこのマクロを実行するように設定するだけです。
ちなみにこれはかなり簡素にしています。
マクロを実行するシートを固定するかとかできるのですが、まずはこういうことができるという紹介にとどめておき、詳しくはまた気が向いた時に書こうと思います。
パワークエリでの読み込み
では次はパワークエリでの読み込みです。
ファイルパスセルのテーブル化
まずはセルに入力したファイルパスはテーブル化しておきます。エクセル挿入タブ→テーブル、と進みます。
この時ファイルパスのセルがずれることがあるので、マクロで設定したセルにファイルパスが入るようにテーブルをずらします。
テーブルを選択してドロップ&ドラッグします。
ここまでできれば準備完了です。
パワークエリでのデータ取得
「データ」タブの「新しいクエリ」からデータ取得を進めていきます。
詳しくはこちらをご覧ください。
取得が完了したら次は詳細エディターでソースデータを記載を相対パスと同じ要領で入力していきます。
データソースの書き換え
ここの詳細は、こちらの記事へ。
これで、ファイルの選択によりファイルパスを取得し、その取得したパスをパワークエリで取得するソースデータのファイルパスとしてしていする、という流れが仕組化できたわけです。
最後に
今回の記事は引用ばっかりになりましたが、この意味するところが大事なのです。
できることを組み合わせてやりたいことを達成する!
これに尽きるのだと思います。
新しいことは新しい機能が必要なのではなく、今までやってきたことをパーツにして新しいことに挑戦する、それが次の新しいパーツにつながっていくのだと思います。
そんなことを考えながら書いてみました。
こちらもぽちっとお願いします!