Excel活用

【PowerQuery】取得データパスを任意選択する方法

相対パスの方法をいっぱい書いてきましたが、そろそろ終わりを迎えそうです。

今回は、「取得データのファイルパスを自由に選びたい!」そんな要望に応えてみました。

酒井たかま
酒井たかま
これはマクロを使えば意外と簡単にできるんです。

取得データパスを自由に選ぶとは。

どういうことかというと、取得データをダイアログボックスを開いて選ぶってことです。

これができると、データの受け渡しがしやすくなるだけでなく、取得データの保存場所に制約がなくなることになります。

こんな画面です。

これで、取り込みたいデータを選択して「開く」とすると、パワークエリで読み込むデータに指定できるという仕組みです。

では、実際にどうやって作るのか見ていきましょう。

マクロの作り方

まず、開発タブから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  


あとは、ボタンを設置して、押せばこのマクロを実行するように設定するだけです。

ちなみにこれはかなり簡素にしています。

マクロを実行するシートを固定するかとかできるのですが、まずはこういうことができるという紹介にとどめておき、詳しくはまた気が向いた時に書こうと思います。

パワークエリでの読み込み

では次はパワークエリでの読み込みです。

ファイルパスセルのテーブル化

まずはセルに入力したファイルパスはテーブル化しておきます。エクセル挿入タブ→テーブル、と進みます。

この時ファイルパスのセルがずれることがあるので、マクロで設定したセルにファイルパスが入るようにテーブルをずらします。

テーブルを選択してドロップ&ドラッグします。

ここまでできれば準備完了です。

パワークエリでのデータ取得

「データ」タブの「新しいクエリ」からデータ取得を進めていきます。

詳しくはこちらをご覧ください。

取得が完了したら次は詳細エディターでソースデータを記載を相対パスと同じ要領で入力していきます。

データソースの書き換え

ここの詳細は、こちらの記事へ。

これで、ファイルの選択によりファイルパスを取得し、その取得したパスをパワークエリで取得するソースデータのファイルパスとしてしていする、という流れが仕組化できたわけです。

最後に

今回の記事は引用ばっかりになりましたが、この意味するところが大事なのです。

できることを組み合わせてやりたいことを達成する!

これに尽きるのだと思います。

新しいことは新しい機能が必要なのではなく、今までやってきたことをパーツにして新しいことに挑戦する、それが次の新しいパーツにつながっていくのだと思います。

そんなことを考えながら書いてみました。

ブログランキング・にほんブログ村へ にほんブログ村 経営ブログ 財務・経理へ にほんブログ村 士業ブログへ にほんブログ村 士業ブログ 公認会計士へ

こちらもぽちっとお願いします!