Dim xl As Object 'Excel.Application
Dim wb As Object 'Excel.Workbook
Dim ws As Object 'Excel.Worksheet
' エクセルオブジェクトの新しいインスタンスを作成
Set xl = CreateObject("Excel.Application")
' ファイル名を指定してワークブックを開く
Set wb = xl.Workbooks.Open("D:\a.xls")
' エクセルを表示
xl.Visible = True
以下の構文でVB6.0からエクセルを起動させています。
このエクセルファイルにはすでにデータが存在している既存のファイルなのですが、開く前に1行目に空白行を追加したいのです。
そのままws.Cell(1,1) とすると、1行目のデータに上書きされてしまうので
挿入したいのです。よろしくお願い致します。
お世話になります。
VBAのマクロで吐かれたコードは
こんな感じでした。参考になりますでしょうか。
Rows("1:1").Select
Selection.Insert Shift:=xlDown
ご存知かも知れませんが,
花ちゃんさんのサイトです。
http://www.bcap.co.jp/hanafusa/index.html
ちょっと変えて
ws.Rows("1:1").Select
xl.Selection.Insert Shift:=xlDown
でできました。
なおこさんありがとうございます。
VBでエクセルを開いた時に、「開いているブックには、他のファイルへの自動リンク が設定されています。このブックを更新し他のブックの変更を反映しますか?」 のメッセージを出さないようには出来ないのでしょうか?
自分で試みた事:
1、DisplayAlerts = false
2、エクセルのツール−オプション−編集−リンクの自動更新前にメッセージを表示するをオフ
結果:
1では、現象変わらず。2、では、「はい」ボタンを押下した処理と同等となる為、メッセージは出なくなるがその代わり、ファイル選択ダイアログが開いてしまいます。
何とか、何もメッセージを出さずにVB内で処理したいと考えています。
予め、開く前にリンクエラー等が判れば良いのですが・・・。
アドバイスよろしくお願いいたします。
Open メソッド の引数のUpdateLinksを設定する事で解決いたしました。
お騒がせ致しました。
ツイート | ![]() |