0

私の会社がすべてのレポートにアクセスするために使用するWindowsフォームアプリケーションがあります。ほとんどのレポートは、実行時に最初から作成されたExcelシート、またはExcelテンプレートからユーザーに与えられます。これまでのところ、すべてのことがうまくいきました。私が今実行している問題は、ドライブに保存されたイメージをExcelテンプレートにImageBoxをロードする必要があることです。私は画像のファイルパスを持っています(これはこの実行ごとに変わります)。私が見つけた唯一の方法は、このようなものです... ImageBoxの画像のプロパティを設定することができるようにするWindowsフォームアプリケーションからExcel関数LoadPicture()を使用する方法

問題は、私は内LOADPICTURE()関数を呼び出すからする方法を見つけ出すことができないです
Dim FileStr As String = "C:\Folder\ImageFile.jpg" 

xlWorksheet.ImageName.Picture = LoadPicture(FileStr) 

ウィンドウズフォーム。実行時にLoadPicture()を呼び出して削除するExcelモジュールを作成することができますが、もっと良い方法が必要だったと思いましたか?そこに誰かが欲しいと願っています。ありがとう。 編集: - ここには、今、私はコードを見てよ、あなたはそうでは.AddPicture方法

が必要であろうと、私はExcelシートに

Imports ExcelVB = Microsoft.Office.Interop.Excel 
Imports ad = GartnerInterface.AdminClass.AdminTools 
Imports xl = GartnerInterface.AdminClass.XlHelp 

Public Class TestClass 

    Public Shared Sub NewSub() 

     Dim xlApp As ExcelVB.Application 
     Dim xlWorkbook As ExcelVB.Workbook 
     Dim xlWorksheet As ExcelVB.Worksheet 

     Dim TestSht As String 

     TestSht = "H:\Josh\ExcelTest.xlsm" 

     xlApp = CreateObject("Excel.Application") 
     xlWorkbook = xlApp.Workbooks.Add(TestSht) 
     xlApp.DisplayAlerts = False 
     xlApp.Visible = True 
     xlWorksheet = xlApp.Sheets("Sheet1") 

     Dim FileStr As String = "H:\12117\12117_Original.png" 
     'xlWorksheet.RFQImg.Picture = LoadPicture(FileStr) 

    End Sub 

End Class 
+0

「テスト」という名前のテンプレートを理解している場合は、テンプレートを作成または開くVB.NET Windowsフォームアプリケーションを持っています上記のコードを含む.xlsx? 1つの方法として、ワークシートを開いてプログラムで変更することができます。私はこれを前にやったと思います。既存の写真を削除して(該当する場合)、別の場所に挿入する必要があります。 [この解決策が役立つかもしれません](0120-338-331) –

+1

私の悪い。私はそれを助けることができれば、実際のExcelワークブックにコードを載せたくない。 Microsoft.Office.Interop.Excelをインポートして、Windowsフォームアプリケーション内からExcelを制御しています。 –

答えて

0

を開くために使用していたコードの例です。このコードの下、次のようなものが必要になります。

Dim FileStr As String = "H:\12117\12117_Original.png" 
xlWorksheet.Shapes.AddPicture(FileStr, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 50, 50, 300, 45) 
から撮影

https://msdn.microsoft.com/en-us/library/office/ff198302.aspx

OR、あなたはちょうどので、私はこの問題を、画像がすでに

Dim FileStr As String = "H:\12117\12117_Original.png" 
Dim imgName as String = "test" 
For Each myShape In xlWorksheet.Shapes 
    If myShape.Name = imgName then   
     cTop = myShape.ShapeRange.Top 'we must save the values here 
     cLeft = myShape.ShapeRange.Left 
     cHeight = myShape.ShapeRange.Height 
     cWidth = myShape.ShapeRange.Width 
     myShape.delete 
     Exit For 
    end if    
next 
xlWorksheet.Shapes.AddPicture(FileStr, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, cLeft, cTop, cWidth, cHeight) 

An example, with user interaction, I borrowed from

+0

ありがとう、私はこれを試してみます –

+0

私はそれが私のために働くようにしようとするために写真を追加して遊んでいるが、それはちょうど私が望むことをすることができません。問題は画像が異なるサイズであることです。 ImageBoxを使用してズームを使用して、常に同じサイズの画像を作成し、毎回同じ量のスペースを取ることができます。だから私は実際にExcelの外からイメージボックスにイメージをロードする方法を知る必要があります。 –

関連する問題