Outlook vbaで特定の列を非表示にする方法が見つからない場合があります。私はすべてを試みた。Outlook vbaでExcelの列を非表示にしない
Sub ExportToExcel()
Dim xlApp As Object
Dim xlWB As Object
Dim xlSheet As Object
Dim enviro As String
Dim strPath As String
Dim ns As NameSpace
Dim item As Object
Dim inbox As MAPIFolder
Dim i As Long
Dim j As Long
' Get Excel set up
enviro = CStr(Environ("USERPROFILE"))
'the path of the workbook
strPath = enviro & "\Documents\test.xlsx"
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err <> 0 Then
Application.StatusBar = "Please wait while Excel source is opened ... "
Set xlApp = CreateObject("Excel.Application")
bXStarted = True
End If
On Error GoTo 0
'Open the workbook to input the data
Set xlWB = xlApp.Workbooks.Open(strPath)
Set xlSheet = xlWB.Sheets("Sheet1")
' Process the message record
`On Error Resume Next
For j = 2 To 367
If xlSheet.cells(1, j).Value <> Date And xlSheet.cells(1, j).Interior.ColorIndex = 4 Then
xlSheet.Columns(j).Interior.ColorIndex = 0
End If
If xlSheet.cells(1, j).Value = Date Then
xlSheet.Columns(j).Interior.ColorIndex = 4
For i = 2 To j - 1
xlSheet.Columns(i).EntireColumn.Hidden = True
Debug.Print xlSheet.cells(1, i).Value
Next i
Exit For
End If
Next j
xlWB.Worksheets("Sheet1").Columns("A:NB").EntireColumn.AutoFit
xlWB.Close 1
If bXStarted Then
xlApp.Quit
End If
End Sub
1行目、2017年12月31日に2017年1月1日からと立ち上げた日付が移入され、私のExcelシートの2列目からスタート:私の現在のコードは次のようです。
マクロに、現在の日付より前のすべての日付を非表示にします。 ご覧のとおり、隠れテスト用のdebug.printは意図したとおりに動作し、すべての日付を01.01.2017から現在の日付-1に出力します。
補足として、xlSheet.Columns(i).Color = 5287936も機能しませんでした。
コメントのforの前にOn Error Resume Nextを配置すると、「アプリケーション定義またはオブジェクト定義のエラー」というエラーが表示されます。
すべてのエラーテストを削除した場合、「ActiveXコンポーネントはオブジェクトを作成できません」というエラーが発生します。
もし私がdebug.print xlsheet.columns(i).hidden
ならば、新しい発見は、直接のウィンドウに "真の"メッセージを得ます。明らかに、コードはそれが想定していたものとまったく同じですが、有効にならないだけです。
**コメントは、拡張されたディスカッションやデバッグセッションではありません。**コメントにコードを投稿しないでください。誰かがコードや説明を求めたら、それをあなたの質問に編集する必要があります。以前の会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/151709/discussion-on-question-by-nalexp-hide-excel-columns-doesnt-work-in-outlook-vba )。 –
実行中のオフィスはどれですか? – 0m3r
私はオフィス2010を使用しています。 – NAlexP