Q: Excelシートから特定の行で最後に使用された列を取得するにはどうすればよいですか。
これはExcelVBAを使用する単純なタスクですが、 PowerpointVBAを使用するのはより困難です。
これが私のExcelシートの例です
再現する手順
- 上記の例のように、新しいExcelシートを作成して保存します
- 新しいPowerPointプレゼンテーションを開き、VBAエディターでALT+を押しますF11
- 以下のコードを挿入し、3行目のテストExcelファイルへのパスをカスタマイズします
- を使用して1行あたりのコード行を実行しますF8
Sub findlastcolumn()
Set objExcel = CreateObject("Excel.application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\<USERNAME>\Desktop\data.xls")
objExcel.Visible = True
'works in Powerpoint VBA but delivers the wrong column
lastcol = objWorkbook.Sheets(1).UsedRange.Columns.Count
'produces an error in Powerpoint VBA
'but works in Excel VBA, correct column in Excel VBA
lastcol = objWorkbook.Sheets(1).Cells(1, 254).End(Direction:=xlToLeft).Column
'produces an error in Powerpoint VBA
'but works in Excel VBA, and wrong column in Excel VBA too
lastcol = objWorkbook.Sheets(1).Cells.SpecialCells(xlLastCell).Column
'wrong column. Powerpoint VBA' find method differs from Excel' find method
'searchdirection isn't available in Powerpoint VBA
lastcol = objWorkbook.Sheets(1).Rows(1).Find(what:="*", _
after:=objWorkbook.Sheets(1).Cells(1, 1), searchdirection:=xlPrevious).Column
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
End Sub
望ましい結果: lastcol=3を取得したい
私のコードのコメントは、私がこれまでに試したことと、それらが生成するエラーを示しています。
アドバイスをいただければ幸いです。
PowerPoint 2003タグはありませんか?Oo