お疲れ様です。Excelファイルに中央設定のヘッダーを設定したいです。
コード呼び出しのアクティビティにて実行したのですがエラーが出てしまいます。
エラー内容:引数 ‘Value’: BC30512: Option Strict On では ‘IWorkbookQuickHandle’ から ‘String’ への暗黙的な変換は許可されていません。 選択した値がプロパティの型に対応していません。
Dim excelApp As New Microsoft.Office.Interop.Excel.Application
Dim workbook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Open(filePath)
Dim worksheet As Microsoft.Office.Interop.Excel.Worksheet = CType(workbook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet)
' 中央ヘッダーを設定
worksheet.PageSetup.CenterHeader = "&""Arial,Bold""&16 " & headerText
' 変更を保存してExcelを閉じる
workbook.Save()
workbook.Close(False)
excelApp.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet)
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
コードをここに入力または貼り付け
コードは上記です。原因が分からず困っております。
コードに関してはChatGPTに書いてもらったものになります。
Yoichi
(Yoichi)
June 10, 2024, 9:52am
2
引数を何かわたしているのではないでしょうか?
別のアプローチになりますが、下記の方法もあります。
こんにちは
いくつか方法があるかと思いますが、以下ClosedXMLを使った例です。
[sample20220217-3]
workbook = new ClosedXml.Excel.XLWorkbook("test.xlsx")
worksheet = workbook.Worksheet("Sheet1")
worksheet.PageSetup.Footer.Left.Clear(XLHFOccurrence.AllPages)
worksheet.PageSetup.Footer.Left.AddText("TEST",XLHFOccurrence.AllPages)
workbook.Save()
Sequence1.xaml (7.1 KB)
ご回答ありがとうございます。引数でファイルパスを渡しています!
filepathに参照名のExcelファイル名を入れています!
添付の方法も試してみたいと思います!ありがとうございます!
Yoichi
(Yoichi)
June 10, 2024, 10:01am
4
このあたりが怪しいと思いますので、現在の設定内容等スクリーンショットで共有いただくと良いかと思います。
確かにエラーマークがついています。
上部でExcelを使用するで参照しているExcelを引数に設定しいます。。
Yoichi
(Yoichi)
June 10, 2024, 10:09am
6
Stringで受ける必要があるので、取り急ぎエクセルファイルのフルパスを記入してみてください。
フルパスを入力して、エラーなくなったのですがヘッダーが入っていなかったです。。。
やはり上記当初の方法では難しそうですかね。。
リンクいただいた方法ですが、先にヘッダーの設定をエクセルにしておいてから実行する形でしょうか?
Yoichi
(Yoichi)
June 10, 2024, 12:02pm
9
シートは正しく指定していますでしょうか?
リンクいただいた方法ですが、先にヘッダーの設定をエクセルにしておいてから実行する形でしょうか?
これはどのような意味でしょうか?特段の前処理は不要かと思いますが。
`' 必要な名前空間を明示的に指定
Dim excelApp As New Microsoft.Office.Interop.Excel.Application
Dim workbook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Open(filePath)
Dim worksheet As Microsoft.Office.Interop.Excel.Worksheet = CType(workbook.Worksheets("RPA用"), Microsoft.Office.Interop.Excel.Worksheet)
' 中央ヘッダーを設定
worksheet.PageSetup.CenterHeader = "&""Arial,Bold""&16 " & headerText
' Excelアプリケーションを表示
excelApp.Visible = True
' リソースの解放
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet)
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
`
おはようございます。sheet名が変更できていなかったためエラーになりました。。
シート名をコードの中に入れたのですが、コードを呼び出し: Exception has been thrown by the target of an invocation.とのエラーが発生しています。
Yoichi
(Yoichi)
June 10, 2024, 11:42pm
11
Microsoft.Office.Interop.Excel.Worksheetsのインデクサは整数でしか指定できません。
1を指定している場合は基本的に一番左側のシートになると思いますので、そこに反映されているかの確認になるかと思います。
どのように確認していますでしょうか?