Wa'alaikumussalam wr wb
hmmm... sudah lama nggak nulik vba... moga2 gak error ya..
begini..
Tentang export image menjadi image file urutan prosesnya :
1. punya shape yang berisi image yang akan di-ekspor -> jenis shape : picture
2. buat sebuah chart kosong di sebuah worksheet dengan ukuran shape image nomor 1 -> menghasilkan shape dengan jenis chart
(sepertinya sheet chart sudah di-lock dari rize, jadi pakainya adalah chart di sebuah worksheet)
3. copy shape picture nomor 1
4. aktifkan sheet berisi shape chart -> select shape chart -> pada object chart di dalam shape chart lakukan paste (mem-paste nomor 3 ke dalam shape chart)
5. ekspor chart dalam shape chart menjadi image file
Kuncinya ada di nomor 1,2, dan 4.
Catatan :
a. Sebelum nomor 1 bisa dikembangkan sesuai kebutuhan
b. antara nomor 2 dan nomor 3 bisa dikembangkan sesuai kebutuhan
c. setelah nomor 5 bisa dikembangkan sesuai kebutuhan
Contoh 1 : Sudah punya sebuah shape picture berisi suatu gambar, shape picture ada di sheet bernama Kid, nama shape picture adalah Picture1
'a.
Sebelum nomor 1 bisa dikembangkan sesuai kebutuhan
dim sFile as string, shtBerisiPicture as worksheet,
shpPicture as shape, shtBerisiChart as worksheet, shpChart as shape
sfile=thisworkbook.path & "\kid.jpg"
'1.
punya shape yang berisi image yang akan di-ekspor -> jenis shape : picture
set shtBerisiPicture=sheets("kid")
set shpPicture=shtBerisiPicture.Shapes("Picture1")
2. buat sebuah chart kosong di sebuah worksheet dengan ukuran shape image nomor 1 -> menghasilkan shape dengan jenis chart
set shtBerisiChart=sheets.add
set shpChart=shtBerisiChart.Shapes.AddChart(width:=shpPicture.Width,height:=shpPicture.Height)
'b. antara nomor 2 dan nomor 3 bisa dikembangkan sesuai kebutuhan
shpChart.chart.chartarea.border.linestyle=xlLineStyleNone 'misal menghilangkan border dari object chart yang ada dalam shape chart
'3. copy shape picture nomor 1
shpPicture.copy
'4. aktifkan sheet berisi shape chart -> select shape chart -> pada object chart di dalam shape chart lakukan paste (mem-paste nomor 3 ke dalam shape chart)
shtBerisiChart.activate
shpChart.select 'harus pakai select supaya terpilih (bukan sekadar diaktifkan)
shpChart.chart.paste
'5. ekspor chart dalam shape chart menjadi image file
shpChart.chart.export sfile,"jpg" 'karena file ingin berupa jpg file (lihat ekstensi nama file hasil ekspor)
'c. setelah nomor 5 bisa dikembangkan sesuai kebutuhan
'buang sheet berisi chart yang menjadi lokasi sementara shape chart selama proses ekspor
shtBerisiChart.delete
Contoh 2 : Gambar adalah hasil copy suatu area range, yaitu range A1:G7, yang ada di sheet bernama Kid
'a.
Sebelum nomor 1 bisa dikembangkan sesuai kebutuhan
dim sFile as string, shtBerisiPicture as worksheet,
shpPicture as shape, shtBerisiChart as worksheet, shpChart as shape
sfile=thisworkbook.path & "\kid.jpg"
set shtBerisiPicture=sheets.add 'karena belum punya shape picture, bikin sheet baru saja untuk tempat shppicture
'1.
punya shape yang berisi image yang akan di-ekspor -> jenis shape : picture
sheets("kid").range("a1:g7").copypicture xlScreen,xlPicture 'mulai bikin image dari range yang ditentukan
shtberisipicture.paste 'paste image range yang di-copy ke clipboard tadi menjadi sebuah shape picture di sheet berisi picture
set shpPicture=shtberisipicture.shapes(1) 'karena di sheet baru wadah picture ini hanya ada 1 shape hasil paste tadi
'nomor 2,3,4,5 bisa seperti contoh 1, termasuk poin b bila perlu
'c. setelah nomor 5 bisa dikembangkan sesuai kebutuhan
shtBerisiChart.delete
'buang sheet berisi chart yang menjadi lokasi sementara shape chart selama proses ekspor
shtBerisiPicture.delete 'buang sheet berisi picture yang menjadi lokasi sementara shape picture selama proses ekspor
Kalau sudah bisa paham prinsip-prinsipnya, semua script diatas bisa dibuat menjadi lebih sederhana.
Jadi, pada kasus ini, solusinya ada dilangkah proses nomor 2. Syaratnya, ada di nomor 1 pada contoh 2.
Wassalamu'alaikum wr wb
Kid