Hai Heru,

Sayangnya, setahu saya, sampai xl2016 pun properti offset milik stretch
belum dibuka oleh pembuat Office.
Lagi pula, saya pikir terlalu ribet dalam menentukan persentase offsetnya.

Kasus seperti ini umumnya digunakan untuk image yang berukuran sama.
Misalnya, untuk membuat label beserta image QR Code.
Image QR Code yang digunakan untuk suatu produk di sebuah perusahaan akan
memiliki dimensi yang sama. Bisa jadi, antar perusahaan dimensi QR Code nya
berbeda. Pada kasus ini, misalkan image QR Code akan diletakkan di sisi
kiri, dan keterangan diletakkan di sisi kanan.

Kalau dulu, ketika yang digunakan adalah barcode yang diberi id tertentu
dibawah barcode, bisa dengan sebuah shape memanfaatkan properti fill
(userpicture dan textframe fill color white), maka untuk saat ini yang
umumnya menggunakan image QR Code bisa dibuat dengan 3 shape, yaitu :
1. shape container dengan memanfaatkan chart objects (baca : chart kosongan)
2. shape image QR Code dengan memanfaatkan rectangular shape yang dibuat di
dalam shape container (di dalam chart) lalu diisi image QR Code mode stretch
3. shape keterangan berupa shape text box yang juga dibuat di dalam shape
container

Langkah pertama adalah membuat template label :
1. Insert sebuah chart kosong, atur lebar dan tinggi chart, ketebalan
border (bila perlu), dsb. Lalu beri nama, misalnya chtTPL (nama di tulis di
Name Box lalu enter)
    > misal lebar 30 mm x tinggi 100 mm  [unit bisa diubah melalui Excel
Options Advanced bagian Display item Ruler Units]
    > klik kotak name box (pojok kanan atas worksheet, di atas nomor baris
Excel 1), ketik chtTPL lalu tekan Enter
    > atur border, misal shape outline weight dipilih 1pt dengan shape
outline color automatic
    > atur chart fill bila perlu, misalnya dengan no fill.  [pada pembuatan
label nama, bisa jadi chart fill akan berguna jika diisi warna atau texture
tertentu]

2. membuat template image QR Code
    > klik chart kosong hasil proses 1 (misal klik bordernya),
       ribbon Insert -> group illustrations -> klik Shapes -> pilih
rectangular shapes -> gambar kotak di dalam chart kosong
       *** shape rectangular akan menjadi salah satu anak dari chart
    > beri nama pada name box, misal dengan nama shpQR
    > atur tanpa border, lalu pada format shape (klik kanan shape pilih
format chape) diatur agar fill dengan Picture or Texture Fill -> klik File
-> pilih sebuah image
        -> pastikan opsi *Tile picture as texture* *TIDAK DICENTANG*
    > atur dimensi shape shpQR ini, misal lebar 29.6mm x tinggi 29.6mm
(bujur sangkar)
    > atur posisinya agar di sisi kiri chart (geser-geser saja dengan mouse)

3. membuat template shape textbox keterangan (shape loh ya, bukan control)
    > klik chart kosong hasil proses 1 (misal klik bordernya),
       ribbon Insert -> group illustrations -> klik Shapes -> pilih Text
Box -> gambar kotak di dalam chart kosong
       *** shape text box akan menjadi salah satu anak dari chart
    > beri nama pada name box, misal dengan nama shpKET
    > atur tanpa border, font color adalah automatic, fill color diatur no
color atau no fill
    > bila perlu, isi dengan suatu teks tertentu lebih dulu agar mudah
mengatur jenis font, ukuran font, indent level, alignment, dsb.
    > atur dimensinya sesuai kebutuhan, misal tinggi 29.6mm dengan lebar
seperlunya
    > atur posisinya di sisi kanan chart

Sampai disini, templatenya sudah jadi di dalam sheet bernama '*myQRLabel*',
dengan object utama :
1. chart bernama chtTPL
2. shape image bernama shpQR (di dalam chtTPL)
3. shape text bernama shpKET (di dalam chtTPL)

Langkah kedua adalah membuat prosedur untuk mengubah image dalam shpQR dan
mengubah bunyi teks di shpKET.
Misal, prosedur tersebut bernama ChangeQRLabel
1. ke VBE (ALT F11) -> insert sebuah Module (general module) -> buat blok
prosedur bernama ChangeQRLabel
public sub ChangeQRLabel()
'baris-baris kode akan ditulis disini
end sub

2. di dalam prosedur tersebut, isi baris kode blok shape chart
with sheets("myQRLabel").shapes("chtTPL")
'baris kode mengolah isi chart diletakkan disini
end with

3. di dalam blok shape chart, isi dengan baris kode mengganti image QR Code
milik shpQR dari suatu file yang ada di drive D
    *** Misal akan diganti dengan file QR Code bernama imgQR001.gif yang
ada di drive D root directory
.chart.shapes("shpQR").fill.userpicture "D:\imgQR001.gif"

4. di dalam blok shape chart, isi dengan baris kode mengganti bunyi teks
milik shpKET dengan suat teks tertentu
    *** Misal teks 2 baris, dengan baris ke-1 berbunyi 'Mr. Kid' dan baris
ke-2 berbunyi 'Ganteng'       wkwkwkwk
.chart.shapes("shpKET").textframe.characters.text="Mr. Kid" & vbcrlf &
"Ganteng"


Catatan :
0. sesuaikan nama worksheet dengan keadaan setempat
1. nama lengkap file image bisa mengambil dari suatu nilai di cells atau
dengan cara yang lainnya. Sesuaikan dengan kebutuhan.
2. bunyi teks bisa mengambil dari suatu nilai di cells atau dengan cara
lainnya. Sesuaikan dengan kebutuhan.
3. contoh kode di atas adalah mengubah isi template. Jika ingin yang diubah
adalah hasil copy-an template (agar template tetap), maka lakukan hal
berikut :
        Baris berbunyi :
with sheets("myQRLabel").shapes("chtTPL")
        diubah menjadi baris-baris kode berikut :
dim shpCHT as shape
set shpCHT=sheets("myQRLabel").shapes("chtTPL").duplicate
with shpCHT
.name="shpLabel001"  'misal yang baru diberi nama shpLabel001
'misal diletakkan di posisi 100,200
.top=100
.left=200

Silakan dikembangkan sesuai kebutuhan.

Wassalam,
Kid





2017-04-27 16:48 GMT+07:00 'Heru Safrudin'
[email protected] [belajar-excel] <
[email protected]>:

>
>
> Dear B-Exceller,
>
>
>
> Bagaimana kode macro vba untuk mengisi sebuah shape (Rectangle) dengan
> gambar yg posisinya disebelah kiri seperti contoh dibawah ini:
>
>
>
>
>
> Adapun format manualnya sebagi berikut :
>
>
>
>
>
> Mohon pengetahuannya
>
> Terima kasih
>
>
>
>
>
> Wassalam
>
> Heru Safrudin
>
>
>
>
>
> 
>

Kirim email ke