• ベストアンサー

拡張メタファイルにて貼り付け

VBAのコードを教えて下さい 作業内容は、同じブック内の別シート間で Sheet(1)のRange("A1:H20")の範囲をコピーして Sheet(2)のRange("A1")を起点に「拡張メタファイル」にて貼り付けたいのですが ご存知の方がおりましたら教えて下さい 更に拡張メタファイルのサイズの変更方法も教えて下さい よろしくお願いします

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

「マクロの記録」とほぼ同じものですが、参考にどうぞ。 Sheets(1).Range("A1:H20").CopyPicture Appearance:=xlScreen, Format:=xlPicture Sheets(2).Select Sheets(2).Range("A1").Select ActiveSheet.PasteSpecial Format:="図 (拡張メタファイル)", Link:=False, _ DisplayAsIcon:=False Selection.Width = 100 Selection.Height = 100 Sheets(1).Select

y-bankrupt
質問者

お礼

早速の回答ありがとうございます 大変助かりました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 画面上に拡張メタファイルを逐一張り付けるコードを組んだのですが

    画面上に拡張メタファイルを逐一張り付けるコードを組んだのですが そのコード実行の前に、アクティブシート上の拡張メタファイルを 全て消去するつもりで下記のコードを組みました しかしながら、.MetaPropertiesではメソッドが見つかりませんとでてしまい これを削除して実行したところ、今度は.Deleteが上記同様 メソッドが見つかりませんと出てしまいます そもそも、拡張メタファイルを割り当てるコードがMetaPropertyかどうかも 分からない始末です どなたかお分かりの方教えて下さい Dim meta as MetaProperty Dim xlsheet as worksheet set xlsheet=ActiveSheet For Each meta In xlsheet.MetaProperties meta.Delete next set xlsheet=Nothing

  • EXCEL VBA 数式を含めたコピー貼り付け

    お世話になります。 VBAを使ってブック間でコピー貼り付けするロジックを以前ご教授いただきましたが、結果が値貼り付けになってしまうため、数式を含めたコピー貼り付けをしたいのです。 A.xlsxというブックがあります。 この中に[データ]と[作業用]という2つのシートがあります。 [データ]シートに会社の1ヶ月の売上げデータが貼り付けています。 [作業用]シートのボタンを押したら[データ]シートのデータをA列に入っている担当者毎にファイルを分割してC:\dumy配下に作成するロジックを色々な方からご教授いただきまして作成しました。 動きはまったく問題ないのですが、下記ロジックの「ここ」部分でのコピーペースト時に値貼り付けしてしまっているため[データ]シートにあった数式がC:\dumy配下に出来上がったファイルには数式がなくなってしまう状態です。 数式も含めて全て貼り付けたいのですが、下記ロジックの[ここ]部分をどのように変更してよいのかが分りません・・ どなたかご教授いただけますでしょうか? よろしくお願い致します。 Sub ボタン_Click() Dim s0 As Worksheet Dim h Application.ScreenUpdating = False Worksheets("データ").Copy before:=Worksheets(1) Set s0 = Worksheets(1) Do Until Application.CountA(s0.Range("A:A")) < 2 h = s0.Range("A2").Value s0.Range("A1").AutoFilter field:=1, Criteria1:=h With Worksheets.Add ここ→ s0.AutoFilter.Range.Copy Destination:=.Range("A1") .Name = h .Move ActiveWorkbook.SaveAs Filename:="C:\dumy\" & h & ".xlsx" ActiveWorkbook.Close False s0.AutoFilter.Range.Offset(1).Delete shift:=xlShiftUp End With Loop Application.DisplayAlerts = False s0.Delete MsgBox "データをEXCELに表示します。" End Sub

  • Excelでシートコピーすると幅が変わる

    閲覧ありがとうございます。 Excel 2019で「シートの移動またはコピー」で、シートを新しいブックにコピーすると、幅が変わってしまいます。 同じブック内だと変わらないようです。 どうやら、全くサイズを変更していないセルの幅も違うようです。 シートをコピーする作業はVBAで行っています。 解決方法が良くわからず、質問させていただきました。 ・Excelのオプション変更で解決する方法 ・違う環境で同じExcelブックのVBAを使っても、幅が変更されない方法 できればどちらもご教示いただきたいです。 よろしくお願いいたします。

  • マクロでコピー貼り付けやってみたいのですが。

    マクロの初心者です。Dim で宣言してやりたいと思っています。 既存のExcelの機能で出来ないことはないと思いますが、敢えて、マクロででないか。 やってみたいと思っています。 やりたいこと等について 1 sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。 2 その時に最終行を取得してコピーをするとしたら、どんなコードが必要なのか 3 最終行の取得のコードの書き方が分からない 4 ネットで下記のような(一部変更)に作ってみたが、これで良いのでしょうか、わからない。 以上のことを答えて頂けませんか。よろしくお願いします。 Sub テスト() Dim range1 As Range Set range1 = Range("E2:J1109") range1.Copy ActiveSheet.Paste Destination:=("sheet1").Range("E2:J1109") ActiveSheet.Paste Destination:=("sheet2").Range("E3:J1110") Application.CutCopyMode = False End Sub

  • EXCEL VBA 数式を含めたコピー貼り付け

    お世話になります。 こちらのサイト内にありました、以前の質問QNo.8966520に対する以下の回答(http://qa.itmedia.co.jp/qa8966520.html)を参考にしているところですが、このVBAでは、A列に入っているデータ毎に新規ファイルを作成・保存するような処理となっているようですが、仮にデータを分類する基準を現在のA列を基準としたものから、B列にする場合は、どの記述をどのように変更すればよろしいでしょうか。 これに加えての質問ですが、仮にA.xlsxという元ブックがあると仮定し、この中に[データ]と[単価]という2つのシートがあるとします。以下のVBAの記述では[データ]シートのデータをA列ごと分類し、それを新規ブックに保存させるものですが、これに合わせて[単価]シートのデータ(シート内のデータは加工の必要なし)も新たに作成するブックにコピーし、保存するには、どのような記述を追加すればよろしいでしょうか。最終的には、新規作成ブックに、[データ]と[単価]の2つのシートが作成されるようにしたいと思います。 [単価]シートのデータを、[データ]シートのデータと合わせて新規ブックにコピーする目的は、[データ]シートのデータの一部に、[単価]シートのデータを参照する数式が入っており、[作業用]シートのデータの抽出・保存だけでは、[作業用]シート内の数式が不完全な状態となってしまうためです。 どなたかご教授いただけますでしょうか? よろしくお願い致します。 Sub sample() Dim s0, nwk As Worksheet Dim h Dim i, j, LastRow, cnt As Long Application.DisplayAlerts = False Worksheets("データ").Copy before:=Worksheets(1) Set s0 = Worksheets(1) Do Until Application.CountA(s0.Range("A:A")) < 2 h = s0.Range("A2").Value '検索ワードの変数hと同じ文字のセル数取得 cnt = WorksheetFunction.CountIf(s0.Range("A:A"), h) i = cnt + 1 With s0 Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = h End With Set nwk = Worksheets(h) 'データシートのA列の最終行取得 LastRow = s0.Cells(Rows.Count, 1).End(xlUp).Row j = LastRow '1行目コピー s0.Range("A1:C1").Copy nwk.Range("A1") Do Until j = 1 'A列のセルデータが変数hと同じ場合コピペ及び行削除 If s0.Cells(j, 1).Value = h Then s0.Range("A" & j & ":C" & j).Copy nwk.Range("A" & i) i = i - 1 s0.Rows(j).Delete End If j = j - 1 Loop With nwk .Move ActiveWorkbook.SaveAs Filename:="C:\dumy\" & h & ".xlsx" ActiveWorkbook.Close False End With Loop s0.Delete Application.DisplayAlerts = False MsgBox "データをEXCELに表示します。" End Sub

  • 拡張メタファイルの拡大率

    Office2007(Word, PowerPoint), IllustratorCS3を連携させて、出版社の指定するWord形式での報告書(カメラレディ)を作成しています。PowerPointやIllustratorで作製した図の貼り込みについては、ファイル容量制限があるのと文字や線が主体の図であることから、JPEG形式ではなく、拡張メタファイルで対応したいと思っています。 本文が9ptなので図中の文字も9ptで揃えたいのですが、emfの拡大率がよくわかりません。 とあるファイルで試行錯誤の結果、powerpointでコピーしてからwordへ形式を選択して拡張メタファイルでの貼り付けは75%くらい、Illustratorで.emf保存してからword(図の挿入で当該ファイル選択)への貼り付けは85%くらいのようだと思える結果になりました。ですが、肝心な図を貼ってみるとやっぱり微妙に違うようにも思えます。 wordのいい加減さの範囲内くらいでいいのですが、すっきり合わせる方法はないでしょうか?

  • Excelデーターの貼り付け

     今晩は・・・ いつもお世話になります! 今回は、Excelでよく使用する幾つかのフォーマットを「元本」というbookにまとめています。 その元本の中の一つのフォーマットをコピーし、同じbookのシートではなく、 新たにExcelbookを開き、シートに貼り付ける作業をしたいのですが・・・ まず、元本のフォーマットをコピーし、新Excelbookを開き、「形式を選択して貼り付け」を選択しました。 すると、「形式を選択して貼り付け」の小窓が出ますが、(貼り付け・リンク貼り付け)とあり、他、 貼り付ける形式(Microsft office Excelワークシート         図 (拡張メタファイル)         ビットマップ・・・・・・・・・) というものでこれではうまく貼り付け出来ず、実際行いたいのは、 「形式を選択して貼り付け」を選択すると(貼り付け・演算)とあり、 貼り付けの種類で(すべて・数式・値・書式・コメント・・・・) という種類の小窓を出るように? ・・・というより、元本のフォーマットが新規bookにちゃんと貼り付けられる様にしたいのです。 基本的な質問ですいませんが、ご存知の方、宜しくお願いします!

  • 【VBA】シート名をセルに入力すると、そのシートのコピーを実行させるには?

    【条件】 1.仮に「合計」というシートに、追加されるシートのあるデータをコピーしたい。 2.別シートに一定のフォームの集計データが入っているので、このシート名を変更して「A」という名前に変更する。そして、「合計」の入っているブックに移動する。 3.「合計」のA1のセルに「A」という入力をしマクロを実行すれば、「A」のシートの一定のRangeから、合計の任意の場所にコピーをするマクロをつくりたい。 4.このフォームは年間同じフォームで20回発生するがそのたびに、同じような作業が必要となります。 (シートにコピーする作業は、やめて、ブックの別ファイルのあるシートから、ある一定のRangeをコピー元として、「合計」にコピーするでも問題ないです)。 If ~ Elseif ~、myRange = A1で作っても、そのmyRange = A, Elseif = B、と延々につくらなければならない(=たぶんこれは原始的なのだと自認しています)のがはがゆく、 シート名が”文字列(または数字)”の場合、その”文字列(または数字)”をもつ、ブックまたはシートから、コピーを実行というコードをつくりたいのです。 よろしくお願いいたします。

  • EXCEL VBA 別ブックから貼り付け

    お世話になります。 A、Bという2つのブックがあります。 A.xls データファイル B.xls 処理実行ファイル Bブックを開いてSheet1に置いてあるボタンを押すとファイル洗濯ダイヤログが出てきて、そこで指定したBブックをsrtPathに格納(シートは1つだけ)のBブックのA1から全データをAブックのSheet1に貼り付けたいのです。 下記VBAを書いてみましたがエラーになってうまく動きません。 Workbooks(strPath).Range("A1").Copy ActiveWorkbooks.Worksheets("Sheet1").Range("A1").PasteSpecial どなたが解決方法をご教授いただけませんでしょうか。 よろしくお願い致します。

  • VBA 指定した範囲のデータ抽出

    Excel VBA初心者の質問です。 以下の作業を行うため、30個のファイルをVBAを活用して処理したいのですが、 詳しい方おられましたらコードの書き方をご教授お願いいたします。 ネットで参考になるコードをいくつか調べたのですがギブアップでした。 1.フォルダA内の一番上のファイルから順番に処理(ファイル名:1101,1102,1103・・・1130) ※ファイルのシート名はそれぞれ「"データ"番号」となっている。 2.「"データ"1101」シートのデータ範囲(A1:AT1000)、(A7000::AT8000)の2つの範囲をコピー 3.新しいBookのSheet1に上詰めで貼り付け 4.次ファイルの「"データ"1102」シートに2の処理を行う 5.新しいBookのSheet2に上詰めで貼り付け 以上の処理を1130のファイルまで繰り返し行います。