Mas @farud ...
... ketika file dibuka didalam folder apapun tidak bisa jalan ...
Kurang tepat jika dikatakan tidak jalan. Scriptnya running kok. Kecuali macronya disabled, baru scriptnya gak bisa running... :D Inti masalah mengapa photo hanya bisa ditampilkan jika berada pada lokasi yang sama dengan folder photo adalah script berikut:
Path = ThisWorkbook.Path & "\POTO" & "\" & Range("PICT") & ".jpg"
Asumsikan saja, folder photo ada pada lokasi D:\POTO dan file (Workbook) ada pada lokasi D:\EXCELKU, dan Range("PICT") berisi nilai ORG_CTV. Maka ketika script tersebut dieksekusi, nilai dari variabel Path akan berisi:
Path = ThisWorkbook.Path & "\POTO" & "\" & Range("PICT") & ".jpg"
Path = "D:\EXCELKU" & "\POTO" & "\" & Range("PICT") & ".jpg"
Path = "D:\EXCELKU\POTO\" & "ORG_CTV" & ".jpg"
Path = "D:\EXCELKU\POTO\ORG_CTV.jpg"
Oleh karena variabel Path berisi nilai D:\EXCELKU\POTO\ORG_CTV.jpg, sedangkan (dengan asumsi di atas) photo aktualnya berada pada lokasi D:\POTO\ORG_CTV.jpg, maka hasilnya file photo tersebut gagal diloading, dan VBA menghasilkan Error...
Demikian sedikit penjelasan agar mas @Farud dapat memahami masalahnya. Terlampir modifikasi script punya mas @Farud dengan mengadaptasi alur proses yang sudah saya sarankan di atas. Intinya, parameter atau pengaturan nama folder disimpan, bisa pada Worksheet khusus atau pada Named Range (atau kalau paham, bisa juga disimpan di Windows Registry).
Semoga sesuai...