Power Queryでデータを取り込んだ際に、セルの値が意図したデータ型にならないことがあります。
たとえば、数値や日付として認識されず、期待した計算や表示ができないといった現象です。
私の場合、「手動でセルをダブルクリックしEnterを押す(=F2+Enter)」ことで正しい型に変換されることを確認しました。
今回は、その操作をすべてのセルに対してVBAで自動実行する方法を試してみました。
なぜ”F2+Enter”が必要になるのか
Power Queryから取り込んだデータは、見た目は正しく表示されていても、内部的には文字列として扱われていることがあります。
この状態では、以下のような問題が起こることがあります。
- 数式が正しく動作しない
- 日付や数値として認識されない
- フィルタや並べ替えが期待通りに機能しない
このようなとき、手動でセルを編集モードにして確定する(F2→Enter)ことで正しく型変換されることがよくあります。
VBAでF2+Enter相当の処理を全セルに適用する
今回は、手動操作をVBAで自動化するマクロを作成しました。
処理時間はややかかるものの、すべてのセルを対象に「F2 → Enter」相当の処理を実行できます。
実装したVBAコード
以下が今回使用したコードです。
Sub EditAndEnterAllCells()
Dim ws As Worksheet
Dim cell As Range
' 最初のシートをアクティブに設定
Set ws = ThisWorkbook.Sheets(1)
ws.Activate
' すべての使用されているセルに対して操作を実行
For Each cell In ws.UsedRange
cell.Activate
cell.Value = cell.Value
Next cell
End Sub
コードの説明
ThisWorkbook.Sheets(1)
対象とするのはブック内の最初のシート(インデックス番号1)です。
必要に応じて"Sheet1"などに変更可能です。ws.UsedRange
シート内で実際に使用されているセル範囲(空白を除く)を対象としています。cell.Value = cell.Value
セルの内容を上書きすることで、Excelに再評価させる働きを持たせています。
これは実質的に「F2→Enter」と同等の動作を実現します。
注意点と処理の影響
このマクロは、使用範囲が広いほど実行に時間がかかります。
処理対象が数千セルに及ぶ場合は、一部範囲ごとに分割して処理するなどの工夫も有効です。
また、データ型の問題がPower Queryの段階で発生している場合は、Mコード側で型指定を明示的に行うほうが根本的な解決になります。
ただし、それが難しい場合や一時的な対応としては、本マクロは非常に有効です。
まとめ
ExcelのPower Queryで取り込んだデータが期待する型にならない場合、「F2→Enter」で型が正しく反映されるケースがあります。
その操作をVBAで一括実行することで、大量のセルにも簡単に対応できます。
UsedRangeを使って全セルを対象にするcell.Value = cell.Valueで再評価を強制- 型の変換・数式の再認識に効果あり
同様の悩みを抱える方の参考になれば幸いです。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
