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デザインやプログラミングで成功を目指している方々にとって、このオンラインスクールは夢を叶えるための最適な場所です。皆さんのキャリアを次の段階へと引き上げるためにデザインされたこのスクールは、一人ひとりの成功を心から願い、それを実現するための全てを提供しています。ここでは、このスクールの魅力について詳しくご紹介します。
◆圧倒的な費用対効果
このオンラインプログラミングスクールは、Web系教育において最高の費用対効果を提供しています。多くの高額スクールが存在する中で、ここではリーズナブルな価格で、質の高い教材、無限のサポート、そして実際に市場で求められるスキルの習得機会を提供しています。
◆現役フリーランスの講師陣
講師たちは全員、現役のフリーランスプロフェッショナルです。市場で活躍している講師から直接、最新のトレンドや実践的なスキルを学べるのは、このスクールの大きな特徴です。
◆柔軟な学習コース
固定のコースがなく、学習者の興味やニーズに応じて自由に学習できます。進路変更も自由で、最低契約期間は1ヶ月という柔軟性を持っています。自分のペースで、自分に合った学習が可能です。
◆無制限の添削とサポート
理解できるまで、そして満足するまで、無制限に添削と質問への回答を提供しています。進路相談や技術面以外の相談にも対応しており、全面的にサポートします。
◆社長から学べる貴重な機会
デザイナー、プログラマー、ディレクター、マーケターとして豊富な経験を持つ社長から直接学べるのも、このスクールの特別な点です。他のスクールでは得られない、貴重な機会です。
◆実績作りへの徹底的なサポート
就職、転職、フリーランスとして成功するためには、高品質な実績が必要です。生徒の作品レベルを最大限に高め、市場で求められる実績を作り上げることに力を入れています。案件を取得できない生徒には、直接案件を提供することもあります。
◆メッセージからの約束
高額な授業料を支払わせて結果を出せないスクールとは違い、物理的なサポートは提供できないかもしれませんが、継続的な努力を通じて最高の結果を出せるようにサポートします。一緒に不正なスクールを撲滅し、あなたの夢を実現しましょう。
このプログラミングスクールは、Webデザインやプログラミングでの成功を目指す方々に必要な全てを備えています。今こそ、このコミュニティに参加し、あなたのキャリアを加速させる時です。
詳しくはこちら↓