今私の同僚と私は簡単にボランティアの空席のフォームを作成するためのテンプレートを作成するためのすべての種類の方法を使用しています。イメージとしての範囲をエクスポート
理想的には、前記プロジェクト担当者は詳細を入力するだけで、空席のフォームが自動的に生成されることが理想的です。
この時点で、フォームは自動的に完成しましたが、範囲をコピーして手動でペイントしてイメージとして保存する必要があります。また、画像の左側と左側には、調整する必要がある非常に薄い白い部分があります。
私の2つの質問は、どんなコードでも、画像としての範囲(A1:F19)の両方のエクスポートを達成することができます。薄い空白が訂正されることはありますか?
イメージがコードが実行されているフォルダと同じフォルダに保存され、ファイル名がセルJ3の名前になるのが理想的です。
私はここと他のサイトの両方で見つかったいくつかのマクロを試してきましたが、何もできませんでしたが、これは最も論理的/現実的なものでした - クレジットはOur Man In Bananasです。 Using VBA Code how to export excel worksheets as image in Excel 2003?:
dim sSheetName as string
dim oRangeToCopy as range
Dim oCht As Chart
sSheetName ="Sheet1" ' worksheet to work on
set oRangeToCopy =Range("B2:H8") ' range to be copied
Worksheets(sSheetName).Range(oRangeToCopy).CopyPicture xlScreen, xlBitmap
set oCht =charts.add
with oCht
.paste
.Export FileName:="C:\SavedRange.jpg", Filtername:="JPG"
end with
こんにちは!ご回答有難うございます!そこで、コードを少し変更しました。拡張子を持たないファイルが作成され、画像の左上と右端に少し空白が残っていたからです。結果は次のとおりです。
Sub Tester()
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("Activiteit")
ExportRange sht.Range("A1:F19"), _
ThisWorkbook.Path & "\" & sht.Range("J3").Value & ".png"
End Sub
Sub ExportRange(rng As Range, sPath As String)
Dim cob, sc
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set cob = rng.Parent.ChartObjects.Add(0, 0, 200, 200)
'remove any series which may have been auto-added...
Set sc = cob.Chart.SeriesCollection
Do While sc.Count > 0
sc(1).Delete
Loop
With cob
.Height = rng.Height
.Width = rng.Width
.Chart.Paste
.Chart.Export FileName:=sPath, Filtername:="PNG"
.Delete
End With
End Sub
ここでは1つの小さな詳細を除いて完全です。画像の周囲に(非常に)薄い灰色の境界線が表示されるようになりました。それは本当に大きな問題ではなく、訓練された目だけが気づくでしょう。それを取り除く方法がないなら、大したことはありません。しかし、ちょうどその場合、もしあなたが絶対に素晴らしい方法を知っていたら。
私はこのライン-10〜
Set cob = rng.Parent.ChartObjects.Add(0, 0, 200, 200)
の値を変更して試してみたが、それは助けていないようでした。
こんにちはティム周りから境界線を削除するために行を追加しました!どうもありがとう!私は私の質問に少しを追加しました、あなたはそれを見て親切にするかどうか疑問に思っていたのですか? –
どのように境界線を取り除くのかわかりません - コピーされている範囲のセルの境界線を修正してみることができます... –
境界線を削除する方法については上記の編集を参照してください。 –