2017-03-21 9 views
1

AddOLEObject関数を使ってPDFをパワーポイントに貼り付けるマクロを書きました。画像の品質が大きく低下することを除いて、意図したとおりに動作します。 PDFは、フローサイトメトリーソフトウェアによって生成されたいくつかのグラフの8.5x11ページの1ページです(誰もが慣れている場合)。ペーストされると、軸とティッカーの一部と文字と数字の断片が欠落します。これは明らかに望ましくない。私が働いていないさまざまなサイズ、で画像を貼り付けしようとしていVBAをPowerPointに貼り付けて、ひどい音質にします。

Set FlowScript2 = Application.FileDialog(msoFileDialogFilePicker) 
With FlowScript2 
    .AllowMultiSelect = False 
    .Filters.Clear 
    .Filters.Add "PDFs", "*.pdf" 
    .Title = "Select Lentivirus Transduction Flow Results File" 
    .Show 
End With 

If FlowScript2.SelectedItems.Count <> 0 Then 

    FlowFile =Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) 

    Set shp = sld.Shapes.AddOLEObject(Left:=50.4, Top:=110, Width:=792, Height:=612, FileName:=FlowFile, Link:=False) 
    shp.Line.Visible = msoTrue 

    With shp.PictureFormat 
     .CropLeft = 45 
     .CropRight = 45 
     .CropTop = 52 
     .CropBottom = 210 
    End With 

End If 

は、ここに私のコードの関連する部分です。私はどこかでAdobeオブジェクトを使用するほうがよいかもしれないと読んでいますが、私は最終結果を他のユーザーに配布しようとしていますし、バージョンがどこにでもないかもしれないと心配しています。何をすべきかの喪失。どんな助けでも大歓迎です。ありがとう!

答えて

0

アイコンの付いたドキュメントを挿入し、アイコンの前にActiveXピクチャを配置してから、自分の最適化イメージを作成してActiveX Pictureプロパティに添付できます。

そして最後に、ActiveXコントロールのクリックイベントにコードをアタッチ:

Private Sub Image1_Click() 
    Dim shp As Shape 
    Set shp = Slide1.Shapes("Object 1") 
    shp.OLEFormat.DoVerb 0 
End Sub 
+0

こんにちは@ThunderFrameは、ご投稿をお願いいたします。これは素晴らしい提案ですが、私はユーザーがそれをやりたいとは思わないので、別々の画像を生成する必要はありません。 PDFを扱う他の方法はありますか? – dimsharksas

+0

私はVBAで品質を決定できるとは思わないし、スケーリングには明らかに問題があります。他の(醜い)別の方法は、PDFをアイコンとして追加してから、図形の背景を設定することですが、図形の前にはアイコンが表示されます。どのくらいの時間とエネルギーがあるのか​​分かりませんが、PDFサムネイルの作成を自動化してから、私の主な答えに記載されている方法でそれらを使用することができます。 – ThunderFrame

関連する問題