EXCELの列複数削除
VB6.0で開発しています。
下のようにEXCELの列を複数削除していますが
思うように削除されません。
削除はされるのですが
B列を削除してから次C列を削除となってしまっているので
C列を削除する時は元々のC列ではなく
B列を削除してからのC列を削除してしまいます。
どう直せばいいのでしょうか?
お願いします。
Private Sub Command2_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim B As Integer
Dim C As Integer
Dim D1 As Integer
Dim E As Integer
Dim G As Integer
Dim H As Integer
Dim K As Integer
Dim L As Integer
Dim M As Integer
Dim N As Integer
Dim P As Integer
Dim R As Integer
Dim T As Integer
Dim U As Integer
Dim V As Integer
Dim Y As Integer
Dim Z As Integer
Dim AA As Integer
Dim AB As Integer
Dim AC As Integer
Dim AD As Integer
Dim AE As Integer
Dim AF As Integer
Dim AG As Integer
Dim AH As Integer
Dim AI As Integer
Dim AJ As Integer
Dim AL As Integer
Dim AM As Integer
Dim AP As Integer
Dim AQ As Integer
Dim AR As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Users\maki\Documents\Book1")
Set xlSheet = xlBook.Worksheets("Sheet1")
xlApp.Visible = True
B = 2
C = 3
D1 = 4
E = 5
G = 7
H = 8
K = 11
L = 12
M = 13
N = 14
P = 16
R = 18
T = 20
U = 21
V = 22
Y = 25
Z = 26
AA = 27
AB = 28
AC = 29
AD = 30
AE = 31
AF = 32
AG = 33
AH = 34
AI = 35
AJ = 36
AL = 38
AM = 39
AP = 42
xlSheet.Cells(1, C).EntireColumn.Delete
xlSheet.Cells(1, D1).EntireColumn.Delete
xlSheet.Cells(1, E).EntireColumn.Delete
xlSheet.Cells(1, G).EntireColumn.Delete
xlSheet.Cells(1, H).EntireColumn.Delete
xlSheet.Cells(1, K).EntireColumn.Delete
xlSheet.Cells(1, M).EntireColumn.Delete
xlSheet.Cells(1, N).EntireColumn.Delete
xlSheet.Cells(1, P).EntireColumn.Delete
xlSheet.Cells(1, R).EntireColumn.Delete
xlSheet.Cells(1, T).EntireColumn.Delete
xlSheet.Cells(1, U).EntireColumn.Delete
xlSheet.Cells(1, V).EntireColumn.Delete
xlSheet.Cells(1, Y).EntireColumn.Delete
xlSheet.Cells(1, Z).EntireColumn.Delete
xlSheet.Cells(1, AA).EntireColumn.Delete
xlSheet.Cells(1, AB).EntireColumn.Delete
xlSheet.Cells(1, AC).EntireColumn.Delete
xlSheet.Cells(1, AD).EntireColumn.Delete
xlSheet.Cells(1, AE).EntireColumn.Delete
xlSheet.Cells(1, AF).EntireColumn.Delete
xlSheet.Cells(1, AG).EntireColumn.Delete
xlSheet.Cells(1, AH).EntireColumn.Delete
xlSheet.Cells(1, AI).EntireColumn.Delete
xlSheet.Cells(1, AJ).EntireColumn.Delete
xlSheet.Cells(1, AL).EntireColumn.Delete
xlSheet.Cells(1, AM).EntireColumn.Delete
xlSheet.Cells(1, AP).EntireColumn.Delete
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
End Sub
お礼
imogasi さん ありがとうございます。 >長いコードを貼り付けて、読み解かせているが、質問がゴタゴタしている。 >もっと的を絞って、要点を簡潔に書くこと その通りでした。 すいません。 一応短くしてもう一度書きます。 Private Sub 文書作成() Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks '既存のファイルを開く Dim xlFilePath As String = "\\Ws55\日東電工\標準書類\原紙\原紙0.xls" Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = CType(xlSheets.Item(1), Excel.Worksheet) xlApp.Visible = True '================== データの入力処理 ================== Dim strDat(2, 0) As Object Dim D文書ファイル名Range As Excel.Range D文書ファイル名Range = xlSheet.Range("A1:A1") D文書ファイル名Range.Value ="AAA" <----ここで LeftFooterに"BBB"を入れるには End Sub それで注意されて、続けて申し訳ないんですが、 回答ではExcelを立上げ、Excel側のマクロで With ActiveSheet.PageSetup .LeftFooter = "aaaa" を実行する。 と解釈しました(これも違ってますでしょうか)。 VB側のプログラムから立ち上げたExcelのLeftFooterに VBのプログラムで "BBB" を入れてやりたいと思っています。 勘違いの部分もあるかも知れませんが、 続けてアドバイスお願い出来ませんでしょうか。
補足
色々やってみて Dim xlPageSetup As Object 'Excel.PageSetup xlPageSetup = xlSheet.PageSetup With xlPageSetup .LeftFooter = "ddd" End With で出来ました。 これに懲りず続けてアドバイスお願いいたします。