[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/12/24(Fri) 11:30
投稿者名:いし
Eメール:
URL :
タイトル:
列の挿入
VB6.0を使っています。

Excelシートの操作をさせようとしています。
列を挿入させたいのですが、次のコードで実行したところエラーが発生します。
「オブジェクトは、このプロパティまたはメソッドをサポートしていません」

Set objExcelApp = CreateObject("Excel.Application")
    
objExcelApp.DisplayAlerts = False
objExcelApp.Visible = False
objExcelApp.Workbooks.Open FileName:=FileName, updatelinks:=False
    
Set objExcelWkb = objExcelApp.Workbooks(Right(FileName, Len(FileName) - InStrRev(FileName, "\")))
    
(略)
                
objExcelWkb.Worksheets(1).Columns("C:C").Select
objExcelWkb.Worksheets(1).Selection.Insert Shift:=-4161   ←ここでエラー


見ての通りの実行時バインディングですが関係あるでしょうか?
Excelでマクロ記録して流用しました。-4161のところは”xlToRight”になっていましたが
そのままでは使えないようなので定数を入れました。

投稿時間:2004/12/24(Fri) 12:04
投稿者名:ごん
Eメール:
URL :
タイトル:
Re: 列の挿入
> objExcelWkb.Worksheets(1).Columns("C:C").Select
> objExcelWkb.Worksheets(1).Selection.Insert Shift:=-4161   ←ここでエラー

    objExcelWkb.Worksheets(1).Range("c1").Activate
    objExcelWkb.Worksheets(1).Selection.Insert Shift:=xlToRight

c1とかc列の適当な所をActivateにすると大丈夫だと思います

投稿時間:2004/12/24(Fri) 13:15
投稿者名:いし
Eメール:
URL :
タイトル:
Re^2: 列の挿入
レスありがとうございます。

objExcelWkb.Worksheets(1).Range("c1").Activate
objExcelWkb.Worksheets(1).Selection.Insert Shift:=xlToRight

上の通り試してみましたが、やはりSelection.Insertのところで同じエラーになりました。
xlToRightを定数にしても同じでした。

投稿時間:2004/12/24(Fri) 13:32
投稿者名:いし
Eメール:
URL :
タイトル:
解決しました
> > objExcelWkb.Worksheets(1).Columns("C:C").Select
> > objExcelWkb.Worksheets(1).Selection.Insert Shift:=-4161   ←ここでエラー
>
>     objExcelWkb.Worksheets(1).Range("c1").Activate
>     objExcelWkb.Worksheets(1).Selection.Insert Shift:=xlToRight
>
>  c1とかc列の適当な所をActivateにすると大丈夫だと思います

花ちゃんさんの教えてもらった方法で動きました。
レスありがとうございました。
また質問した際にはよろしく願いします。

投稿時間:2004/12/24(Fri) 12:11
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 列の挿入
> objExcelWkb.Worksheets(1).Selection.Insert Shift:=-4161   ←ここでエラー
Selection をヘルプで調べ、対象を確認して見て下さい。
objExcelApp.Selection.Insert Shift:=-4161
(Selection は、Worksheets(1) のプロパティでは無い)

> 見ての通りの実行時バインディングですが関係あるでしょうか?
これだけでは 実行時バインディング とは言えないのでは。(^_^;)

投稿時間:2004/12/24(Fri) 13:17
投稿者名:いし
Eメール:
URL :
タイトル:
Re^2: 列の挿入
> > objExcelWkb.Worksheets(1).Selection.Insert Shift:=-4161   ←ここでエラー
>
> Selection をヘルプで調べ、対象を確認して見て下さい。
> objExcelApp.Selection.Insert Shift:=-4161
> (Selection は、Worksheets(1) のプロパティでは無い)
>
> > 見ての通りの実行時バインディングですが関係あるでしょうか?
> これだけでは 実行時バインディング とは言えないのでは。(^_^;)

Dim objExcelApp as Objectとしている部分が抜けていました。
すいません。

投稿時間:2004/12/24(Fri) 13:26
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: 列の挿入
objExcelApp.Selection.Insert Shift:=-4161

では、解決できなかったのですか?

投稿時間:2004/12/24(Fri) 13:30
投稿者名:いし
Eメール:
URL :
タイトル:
Re^4: 列の挿入
> objExcelApp.Selection.Insert Shift:=-4161
>
> では、解決できなかったのですか?

すいません。肝心な部分を見落としていました。

教えてもらった通り試したところ無事に動きました。
オブジェクトブラウザで調べたところSelectionはApplicationクラスになっていました。
初心者なのでエラーの意味をよく理解しないまま投稿してしまいました。すいません。
ありがとうございました。