• ベストアンサー

Excel VBA データ差し込みPDF作成

添付のような結合セルのあるSheet2文書に、Sheet1のデータを挿入(黄色部分)し 1枚ずつPDFを作成できるVBAを教えてください。 Sheet1 C列 name → Sheet2 結合セルの黄色部分(B6~F7) Sheet1 A列 日付 →  Sheet2 E18 *nameごとにPDFを作成したいです。 また、Sheet1 の部分のデータを別のデータにコピー&ペーストで入れ替えても 使用できるかも知りたいです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

sub macro1()  dim h as range  worksheets("Sheet1").select  for each h in range("C2:C" & range("C65536").end(xlup).row)   worksheets("Sheet2").select   range("B6").value = h.value   range("E18").value = h.offset(0, -2).value   activesheet.exportasfixedformat _    type:=xltypepdf, _    filename:=h.value & ".pdf", _    quality:=xlqualitystandard, _    includedocproperties:=false, _    ignoreprintareas:=false, _    openafterpublish:=false  next end sub >Sheet1 の部分のデータを別のデータにコピー&ペーストで入れ替えても使用できるか 何がしたいのかイミフメイなので、まず回答で寄せられたそれぞれのマクロを実際に動かして上手くいくことを確認してから、次はこんどは何をしたいのか判るようご相談を書きなおして、別途新しいご質問として投稿し直して下さい。

Loopzone
質問者

お礼

はじめてのvbaで拙い説明でわかりずらかったと思いますが、意図していたことが数秒でできました!!!すごいです!!!ありがとうございましたm(__)m

関連するQ&A

  • エクセルVBAについて

    エクセルVBA初心者です。 以下のような処理をしたくて、色々な質問等を見て組み合わせて動かしてみたものの、なかなかうまくいかず困っております。アドバイスいただけないでしょうか? 「Sheet1」に以下のようなデータがあります。 <A列> <B列> <C列> ok59  886 ok88 ok70 777 ok75 okGG 478 ok66 ok97 358 ok58 ok69 764 ok47 ok39 368 ok40 okGG 794 ok68 ok85 463 ok75 ・    ・ ・ ・    ・ ・ A列とC列にはそれぞれ「ok+2桁の数字or文字」が入っています。 B列は特に今回は使わないデータですが、数字が入っています。 やりたいことは以下の通りです。 A列に「GG」を含む文字列(実質okGGしかない状態です)が出てきたとき、 その1つ下の行のA列とC列のセルをピックアップし、背景色をピンク色にします。 上の例だと、A列は「ok97」と「ok85」、B列は「ok58」と「ok75」のセルが該当します。 さらにピンク色にピックアップしたセルのから、頭の「ok」を除いた数字を3.5倍した数字を、 別のシートに抽出したいのです。 なので、上の例を使用した場合の抽出したデータは以下のようになります。 <A列> <B列> 339.5 203 297.5 262.5 ちょっと複雑なのですが、どのようにするのがよいのでしょうか? また、別シートに抽出したいのですが、 「Sheet1」の特定のセルに日付が入っているので、 できればその日付の名前のシートを作り、そこに抽出できたらなぁ・・・と考えています。 「Sheet1」にデータを貼り付けて、ボタンをポンっとおしたら日付の名前のシートができて、 欲しいデータが抽出されていく・・・というイメージです考えています。 どうぞよろしくお願いします。

  • エクセルでのデータのあいまい検索のVBAについて

    VBAかマクロで作成したいと思いますが、あいまい検索ができずに困っております。 どなたかご教授お願いできますでしょうか? 一応画像を添付しておりますが大変見にくく申し訳ないです。  一つのファイルで2枚のワークシートを使用してデータのあいまい検索をしたいと思っております。 画像1の方のワークシートがSheet2になっていてこちらの”I”の列に入力しているデータが画像2になりますが登録商品リストの”G”の列に含まれているかを検索したいと思います。 その結果は”Sheet2”の緑色の部分”I”のセルにデータがあれば”*”をJのセルに表示したいと思います。 登録商品リストには長いもので桁数が30桁近いものもありますがこの桁数を8ケタくらいまでの一致でSheet2のIの列のデータと照合して結果をJに表示できればと思っております。何卒ご教授くださいますようお願いいたします。 照合するデータにつきましては、その日によって件数が違いますので、Sheet2のI列にあるデータが200件くらいの時もあれば2000件くらいの時もございます。 登録商品リストは登録するたびに量が増えていくので照合件数も増えていくことになりますので、どちらも1行指定でできればべすとだとおもっております。

  • PDFファイルの表を含む文書をエクセルのセルにコピペする方法

    ワードで作成された文書(テキストと罫線程度の簡単な文書)がPDFに変換さたデータがあります。ワードの元文書データは手元にありません。 そのPDFの内容のテキストをすべてエクセル上に入れたいのですが、そのPDFファイルに含まれる表(例えば3列X4行程度の一覧表)を1つのセルごとエクセルのセルに入れ込みたいのですが、できません。一度txtにペーストして、エクセルでtxtを開く際に「カンマやスペースで区切った・・・」という開き方をしても微妙にずれました。 AcrobatはReaderでなく、Acrobat5.0を使用しています。エクセルは2002です。 Acrobatでテキストの選択をして、エクセルにコピー&ペースト、コピー&形式を選択してペースト、などやってみたのですが、PDFの表の中のテキストは、エクセルにペーストすると罫線を関係なく結合され、すべて左詰めで1つのセルに入ってしまいます。 なにか良い方法はありませんでしょうか。 できれば、エクセルやアクロバットにすでにある機能だけで行いたいのです。OCRソフトはありません。 ワード、Dreamweaverであれば使えます。 わかりづらい質問で申し訳ないのですが、 どうぞ教えてくださーい。

  • エクセルVBAの記述

    エクセルシートで教えてください。 Sheet1 に入力用シートを作成して、Sheet2 にデータを表示されるようにするには、どの様にVBAを記述したらよいでしょうか? 説明 Sheet1 の入力は、日付と入退出の時間です。同日に二回・三回入室すると、同じ日付が二行・三行になります。 Sheet2 の表示は、列が10分単位で24時間表示です。行が1日から31日までの日付です。 サンプル画像のように、Sheet1 に入力した場合に、Sheet2 に赤色で滞在時間を表示するには、どうすればよいでしょうか? Sheet2 のひとつのセルは10分です。

  • VBA2010,B3の値が変わったら、A3に

    VBA2010で,B列の値が変わったら、A列の同じ行に前日の日付を入力するには、マクロコードをどのように書けばよいですか?B列データ入力範囲はB3~B65536 尚、B3~B65536にはVLOOKUPで、他のブックから値を参照しています。 最後にA列の同じ日付セルを結合し、I列、P列、W列の同じ行に結合したセルをペーストたいのです。 宜しくお願い致します。

  • エクセルVBAでセル結合

    いつもお世話になっています。 エクセル2003でVBAを使って下記をしたいのでその、VBA構文を教えて下さい。 特定の列のあるセルに文字が入っています。 (文字が入っている列は固定ですが、行番号はデータによって変わります。例えば、Aデータの場合は「J30」、Bデータの場合は、「J55」だったりします。) この文字が入っているセルをVBAで検索し、検索したセルを右隣のセルと結合します。(先ほどのAデータの場合、J30:Z30に結合します。) 更に、文字が入っているセルが2以上の複数の場合があります。(先ほどのAデータの場合、「J30」と「J40」と「J45」という感じです。文字が入っているセルの数はデータにより異なります。) 結合が終わり、このシートのデータがあるところだけに罫線を引きます。(このシートのデータというのは、前述の文字とそれ以外は、「数字」と「・」です。 ややこしいですが、よろしくお願いします。

  • エクセルVBA  「本日」の日付を検索したいのですが

    お世話になります。 シートを開いたときに、日付列を検索して本日と同じ日付(日付列に本日と同じ日付がなければ、前日や前々日など、近い日)の一番最初のセルをアクティブにしたいのです。 素人なのですが、教えていただけるでしょうか。 理由ですが、 エクセルで文書受付簿をつくり、利用しています。 受付簿であるシート名 台帳  で受付記録をしているのですが、 別シート  コピー用『前年度』データ   というものを作ってあります。 それは、前年度の受付内容をコピーしたものであり、必要なセルをダブルクリックするとシート  台帳  の最終行に貼り付けるようにVBAを組んでいます。 (毎年同じ件名の文書が来る場合は、ダブルクリックするだけで入力できるので、手間が省けます) 同じ件名の文書は、だいたい同じ時期に来るので、シート  コピー用『前年度』データ   を開いた際に、日付列を検索して本日と同じ日付(日付列に本日と同じ日付がなければ、前日や前々日など、近い日)の一番最初のセルをアクティブにしたいのです。 ただし、まったく同じ日に去年も同じ件名の文書がくるわけではないので、同じ日を抽出するのではなく、検索してセルをそこに合わせるということをしたいのです。 コピー用『前年度』データ   の状況は、 A列は日付です。この日付は、表示は「月日」のみですが、数式バーには2006/4/5と表示されるように、年の情報も入っています。年は無視して、月日だけで検索したいのです。 一日に20件以上受付するので、日付も同じ日が20行近く続いて次の日の受付データに変わります。その日のまとまりの中で、一番上の行に合わせたいのです。 B列は相手先が入っています。 C列は文書の件名が入っています。 つたない説明ですが、お分かりいただけたでしょうか? よろしくお願いいたします。

  • Excel VBA を使って 日付の表示

    お世話になります。VBAを使ってSQLDBからデーターの読込みを行っているのですが、読込まれたセルが日付やカンマ編集する方法が判りません。 どなたかHELPをお願い致します。  例) Sheet1 の A列 が日付          B列が 数字 宜しくお願いします。

  • Excel VBA

    Excel VBAについて シート1にはデータが入ってます。 G列に日付、L列に商品名、N列に件数。 シート2には集計結果を入力したいです。 セルB2に、日付が10月1日から15日までで、商品名がAの件数の合計。 セルB3は、日付が10月16日から末日まで、セルB4は、日付が11月1日から15日までと半月毎に集計を半年後の末日まで繰返し、B2の数行下には、商品名Bの集計行を作り、その数行下には商品名Cの集計行を作りたいです。 これまでは関数SUMIFSで集計していましたが、複数店舗分のシートの更新・メンテナンスが大変なので、VBAでの集計を考えいろいろ調べてるのですが、方法が思い付かないので、ご教授ください。

  • ExcelのVBAにてキーになるものを入力してデータを振分けたい

    2つのシートがあり、sheet2に振分けるデータ(下表)を作成しておきます。   (列)  1   2   3  (行)   1     A   B   C  2     ○   △   ×  3     ア   イ    ウ (1)sheet1にコンボボックスにてAを入力する。A、B、Cは、それぞれ決められたセルにコピーされる。 (2)sheet1にコンボボックスにて○を入力する。○、△、×は、それぞれ決められたセルにコピーされる。 (1)と(2)のコピーされる場所は、同じ場所です。 というようなものをExcelのVBAにて作成したいのですが、VBAは、あまりよくわかりません。 宜しくお願い致します。

専門家に質問してみよう