2022年4月30日TwitterFacebookGoogle+PocketLINELINEお仕事などでお客さんからPDFで資料が送られてきて、そのデータを基に仕事を進める際に、そのデータをExcelに写して作業を進める事は多いのではないでしょうか?・PDF表のデータをコピー、Excelに貼付けたら、データが縦一列に貼付けされた・PDF表データは1セルも空白が無い状態だ今回は↑の条件に当てはまる場合はマクロ(VBA)を使用して元の配置に戻します。ソースコードは記事上に記載しております。『表のデータが縦一列に貼付けされる場合』とは具体的にはPDF元データ表(左図)からExcel(右図)へデータを貼付けると縦一列に並ぶ場合PDFの表部分をコピーして、Excelに貼り付けると、冒頭の画像のようになる場合です。再度注意点ですが、これからご紹介する方法では【表がびっしり1セルも空白が無い場合にのみ】有効です。空白がありますと、その部分はうまく表示されませんので、個別の対応(変換)が必要となります。空白が1~2か所程度ならば対応出来ると思いますが。PDF元データの表は、できるだけすべて埋まっている状態でないと厳しい。空白がある場合は、Excelに貼付けた縦一列に並んだデータに自分で仮データを打ち込む必要があります。表データが空白で区切られて表示されてしまう場合、そんな場合は、こちらの記事がお役に立てるかと思います。ちなみに、空白で区切られている場合は、あらかじめ準備しておいた数式を使って分離します。[...]それでは話をもとに戻して今回の場合のVBAを見て参りましょう。以下、VBAソースコード例を記載しておりますが、コードは2通り準備しました。いずれも・セル【B6】にPDF元データを貼り付けて・並び直したデータは【E6】を右上端としてデータを処理する仕様です。詳しくはすぐ上の画像をご覧ください。SubPDF資料のデータ表が何列あるか?を上のコードに直接列数を入力してから、マクロを実行すると変換されます。「?列」の「?」部分の数字のみを記入して、マクロ実行です。・コード中の【▲】のPDF元データ列数まで来たら、1列下にスライドし・再度【E列】→【F列】...といった具合に1列ずつズレながら転記する。・【B6】からのデータが無くなり次第、動作を終了する。Sub↑のソースコードではセル【B2】に「?列」の「?」部分の数字のみを記入して、マクロ実行!といった具合です。具体的には↓の画像を参考にしてください。・【B2】のPDF元データの列数まで来たら、1列下にスライドし・再度【E列】→【F列】...といった具合に1列ずつズレながら転記する。・【B6】からのデータが無くなり次第、動作を終了する。こんな感じのコードです。基本的には1のモノと一緒です。両方とも、もしも元データの記載がなければVBAでの処理が行われない仕様になっております。いかがだったでしょうか?解決出来て、業務の効率化、時短につながれば幸いです。き■Tシャツ好き■スポーツジム通い訪問有難う御座います。旅行が好きな社会人、私は運営者の「ぎーちゃん」です。旅先ではご当地のTシャツを買ってしまう変な癖がついております。以前は台湾に住んでいたことがあります。