321 質問があります  投稿者:takiss [99/4/09(金)0:02分]
はじめまして。

いきなりですみませんがVBで作らないと行けないプログラムがあるのですが、
ちょっと詰まってしまって質問があります。
エクセルで作ったファイルからあるセルのデータを抜き出したいのですが、
ファイル名が決まってないときにはどうしたら良いのでしょうか??

たとえばですけど、今c:\dataに
199904073101.xls
199904073102.xls
199904083101.xls
199904072093.xls
199904082090.xls

というファイルがあったとします。
この中でたとえば
********310*.xls
というファイルだけでシート名「現場5」のA3(セル)のデータを使いたいときどうするかです。
ファイルの一覧をテキストに書き出し
そのテキストを先頭から読んで検索条件に当てはまるファイルを見つけます。
ここまでは自分でできます。
後はその決まったファイル名(エクセルのファイル)を使い(シート名とセルは固定)
からデータを抜き出す方法がわかりません。
その抜き出したデータを違うエクセルのファイルに書き出すのですが、
その書き出し方もわかりません。
ファイル名が固定だとできると思うのですが、この場合条件によってファイル名が変わりますので。
もしわかる方いらっしゃいましたらおしえてください。
もしくはこんな本があるとかの情報でもうれしいです。
よろしくお願いします。

No.322 Re:質問があります  投稿者:前原@Docon [99/4/09(金)10:03分]

みなさん、こんにちわ。前原@Doconです。


VBのソースからエクセルのシートをあれこれ操作したいということと解釈して...

'---------------------------------------------------------------Sample Start
Sub hogehoge()

Dim myExcel As Workbook 'エクセルのブックオブジェクトへの参照を格納する変数
Dim myFileName As String '目的のファイルの名前
Dim mySheetName As String '目的のシートの名前
Dim myCellName As String '目的のセル番地
Dim MyValue As Variant '取り出した値を格納する変数

myFileName = "C:\hogehoge\pekepeke.xls"
mySheetName = "naniyara"
myCellName = "B5"

Set myExcel = GetObject(myFileName, "Excel.Sheet")
myValue = myExcel.Worksheets(mySheetName).Range(myCellName).Value
Set myExcel = Nothing

End Sub
'---------------------------------------------------------------Sample End

てなあんばいで操作できます。
で、エクセルのバージョンによって上記の GetObject が返す参照が
ブックなのか、シートなのかが違ったりします。(サンプルはExcel97)
また、既存のファイルではなく、新規の場合は CreateObject() を使います。
myExcel はブックオブジェクトへの参照ですので、.Application は、
エクセルそのものへの参照も返しますので、エクセルで公開されている
インターフェイスはすべて操作することが出来ます。 ですから、
「セルに値を入れて、計算させて、印刷させて、保存する。」とかいうのも
ありです。印刷プログラムを作るのが面倒で、実行環境にエクセルが保証され
ていればお手軽印刷機能の出来上がりです。
(最近そんな開発用ツールの広告も見かけました。)
あと、忘れてはいけないのは、VBの参照設定で、エクセルのライブラリを
指定しておくことです。
細かいことはほかにいろいろありそうですが、ヘルプや BooksOnline などを
参考に勉強(と言うよりは実験かな(^^;)すれば楽勝かと。

たぶん質問の意図に沿っているとは思いますが、さらなる質問があればまた
書き込みしてください。(「私の聞きたいことは、そんなことじゃないよ」を含む)

No.341 エクセルの印刷  投稿者:緋色 [99/4/15(木)16:16分]

はじめて書き込みします。 VB6を使って開発しているのですが、行き詰まって質問しに来ました。

アクセスDBからデータを取得して、エクセルのシートに取得したデータを貼りつけて保存する。
ここまでは市販の本とかを読みながら見よう見まねで出来たのですが、ここで保存したエクセルのシートを
印刷する機能を作りたいのですが、どうも上手く行きません。
拙い文で申し訳ないのですが、どなたかお教え願えないでしょうか。

No.342 Re:エクセルの印刷  投稿者:前原@Docon [99/4/16(金)11:43分]

みなさん、こんにちは。


4月9日の投稿でもちょっと説明しているので重複するかもしれませんが、
そのときのサンプルをちょいとなおして説明します。

'---------------------------------------------------------------Sample Start
Sub hogehoge()

Dim myExcel As Workbook 'エクセルのブックオブジェクトへの参照を格納する変数
Dim myFileName As String '目的のファイルの名前
Dim mySheetName As String '目的のシートの名前

myFileName = "C:\hogehoge\pekepeke.xls"
mySheetName = "naniyara"

Set myExcel = GetObject(myFileName, "Excel.Sheet")
With myExcel
.Worksheets(mySheetName).PrintOut
.Application.Quit
End With
Set myExcel = Nothing

End Sub
'---------------------------------------------------------------Sample End

印刷範囲の設定などはあらかじめシートに行っていてもいいですし、
コードからもページ指定などが出来ますので、お好みで...

No.380 Word のカーソル位置を取得・設定したい  投稿者:NEED [99/5/11(火)16:54分]

現在、VB5.0 から Word97 のファイルを編集しています。

下線を引くなどの編集をスムーズにする為、
カーソル位置を取得・設定したいのですが、何かいい方法はありますか?

No.394 RE:Word のカーソル位置を取得・設定したい  投稿者:たくボン [99/5/15(土)5:48分]

こんなカンジでいいでしょうか?


=====================================================
Form1.frm
=====================================================
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Sub Command1_Click()
Dim objPointAPI As POINTAPI
Dim lngRetVal As Long

lngRetVal = GetCursorPos(objPointAPI)
Debug.Print "X:" & Format(objPointAPI.x, "000000") _
& " y:" & Format(objPointAPI.x, "000000")
lngRetVal = SetCursorPos(objPointAPI.x + 100, objPointAPI.y + 100)
End Sub

No.411 RE:Word のカーソル位置を取得・設定したい    投稿者:たくボン [99/5/19(水)2:14分]

NEEDさんお待たせしました。Wordのオブジェクトは膨大ですね(^^;)

とりあえず、CreateObjectでWordを起動して、SelectionオブジェクトのInformation プロパティ
で取得できるようです。
'===========================================================
'Form1.frm
'===========================================================
Private oWord As New Word.Application

Private Sub Form_Load()
Set oWord = CreateObject("Word.Application")
oWord.Visible = True
End Sub

Private Sub Form_Terminate()
Set oWord = Nothing
End Sub

Private Sub Timer1_Timer()
On Error Resume Next
If oWord.Documents.Count > 0 Then
With oWord.Selection
Debug.Print .Information(wdFirstCharacterLineNumber) & " 行目"
Debug.Print .Information(wdFirstCharacterColumnNumber) & " 列目"
End With
End If
End Sub

No.769 VBからEXCELファイルをCSVにて保存する方法  投稿者:ひろ [99/10/20(水)11:38分]

はじめまして、VB初心者のものです。

VBからEXCELを起動し、CSV形式にて保存して終了するという
単純な動きなのですが、もうすでに3日程、悩んでいます。

filename1 = "sc.xls"
filename2 = "sc.csv"
Set xlapp = GetObject(, "Excel.Application")
Set xlbook = xlapp.Workbooks.Open("" & filename1 & "")
'xlapp.Visible = True
xlbook.SaveAs ("" & filename2 & "")
~~~~~~
VBのヘルプでは「SaveAs」の引数はファイル名のみのようですが
VBAではファイルフォーマットなど様々な引数をつけれるようです。
同様のことをVBからコントロールするには、どのようにすればようのでしょう?

複数の種類の違うシートを、バッチ的に処理したいので、できれば
CSVに変換する部分はEXCELに任せてしまいたいのですが・・。

どうぞよろしくお願いいたします。

NO.770 Re:VBからEXCELファイルをCSVにて保存する  投稿者:みゃお [99/10/20(水)15:14分]

VBからでも同様に引数を付けられます。参照設定はしてますよね?

案ずるより産むが安し。(漢字これでいいのかなぁ)

No.891 他のアプリケーション終了(Excel)  投稿者:匿名 [99/12/22(水)10:32分]

 ボタンを押すとExcelの画面を終了させたいのです。このExcelの画面は編集を

しないので、間違って編集してしまってダイアログボックスが表示されても。保存
せずに終了したいのですがそのようなことは出来ますか?

No.892 Re:他のアプリケーション終了(Excel)  投稿者:みゃお [99/12/22(水)16:09分]

EXCELを終了する前に、開いているWorkbookのSavedプロパティをTrueにしてみてください。

No.953 VBからExcelを制御したい  投稿者:しま [00/2/01(火)11:56分]

はじめまして。


現在、VBとExcelを使ってツールを作成しています。
以下の2点について、困っています。
OS :Windows95
VB :VB5.0
Excel:Excel97

1.VBがインストールされていない環境でも使用する予定です。
2台ほどテストしてみましたが、DATAコントロールのRefresh が実行できず
エラーになります。
コントロールは、ComboBox,TextBox, DATA,MSFLXGRD, DBLISTを
使用しています。 MSFLXGRDについては MSFLXGRD.ocxを Windows Systemディレクトリ
の下にインストールするようヘルプにあったので、指示通りにしてみましたが
プログラムは動きません。

2.VBのフォームに入力した内容をExcelに書き込んだ後、Excelを画面前面に
表示したいと思っています。
GetObject関数を使用していますが、Excelが自動的に表示する場合とタスクバー
でExcelをクリックしないと表示しない場合があります。
どちらか一方に制御したいのですが、どうしたらいいでしょうか?
プログラムは以下のような流れです。
@マクロを含むExcelを起動(Form_Load時)
Set MyXL = GetObject(マクロを含むExcel)
With MyXL
.Application.Visible = False
.Parent.Windows(マクロを含むExcel).Visible = True
End With
A帳票Excelを起動(登録コマンドをクリックした時)
Set MyXL1 = GetObject(帳票Excel)
With MyXL1
.Application.Visible = False
.Parent.Windows(帳票Excel).Visible = True
End With
Bデータ書き込み後
MyXL1.Application.Visible = True

C帳票ExcelをExcel上のマクロで 別名をつけて close

登録コマンドをクリック1回め(@、A、B、C)のときは、自動的にExcelが表示されますが
2回めにクリックした時(A、B、C)は、表示されません。
GetObjectの使い方も含めて教えて下さい。

アドバイスをよろしくお願いします。

No.961 Re:VBからExcelを制御したい  投稿者:みゃお [00/2/03(木)16:48分]

最小化になっている理由についてはわからないです。すみません。

でも、GetObject より CreateObject を使った方が管理が楽なんじゃないでしょうか?
(少なくとも私は。)
その場合、CreateObject("Excel.Application") でEXCELを一個起動したら、
あとは MyXL.Workbooks.Open ファイル名 や、MyXL.Workbooks(ファイル名).Close
で制御することができるでしょう。

No.966 VBからExcelを制御したい:解決  投稿者:しま [00/2/07(月)9:26分]

しまです。


Excelの表示については、「最小化」をExcelのマクロでしてしまって
いました。その部分を削ったら、VBからExcelの表示が制御できる
ようになりました。
GetObjectについては、みゃおさんのアドバイスにあったとおり
CreateObjectと比較しながらヘルプを読み直してみました。
やはり、Excel,Applicationとして一度CreateObjectで
参照変数を取得して操作する方が、ベストと思い、プログラムを
修正することにしました。

また、「実行ファイルが動かない」方もセットアップウィザードで
なんとかなりそうです。(容量が大きくなってしまうのが難点ですが。)

みゃおさん、ありがとうございました。

No.1000 EXCE97の「名前を付けて保存」を実行  投稿者:だんな [00/3/09(木)15:27分]

始めまして。よく参考にさせて頂いてます。


VB5からEXCEL97を起動する事は出来たのですがそこで変更した内容を違う名前で保存したいのです
それも自動的に保存するのではなく、ユーザーが指定した名前で保存したいのです。
EXCELを単独起動すると、「名前を付けて保存」ウィンドウを起動できますが、
VBからは出来ないのでしょうか。

よろしくお願いします。
ちなみに下記のようなコーディングを使用しています。

Dim xlWkFileName As String 'EXCELブックファイルの名前
Dim mySheetName As String 'シートの名前

xlWkFileName = "C:\Book1.xls"
mySheetName = "SHeets1"
Set obExcel = CreateObject("excel.application")
With obExcel
    .Workbooks.Open xlWkFileName 'EXCELブックのOPEN
    .Sheets(mySheetName).Select 'シートの選択
''''ここに入れたいのです。
    .Application.Quit 'EXCELの終了
End With
Set obExcel = Nothing

No.1003 Re:EXCE97の「名前を付けて保存」を実行  投稿者:みゃお [00/3/10(金)16:13分]

Application.Dialogs(xlDialogSaveAs).Show  のことかな?(EXCEL参照設定必要)

単にファイル名を得たいだけで、保存処理を自前でやるなら、GetSaveAsFileName というのもあります。

No.1028 ACCESSのテーブルをEXCELに保存  投稿者:たけすぃ [00/3/22(水)17:26分]

こんにちは


VB6.0でACCESSのテーブルのデータをEXCELに保存したいのですが方法がわかりません。

例えば、SQL文でOpenRecordsetでテーブルをひらいて、EXCELを新規作成して、
その新規作成したEXCELのシートに
OpenRecordsetで開いたテーブル内容をエクセルに保存したいのですが。
(テーブルの項目名称も)

他の方法でも、せんせんかまいません
教えてください
よろしくお願いします。

No.1034 Re:ACCESSのテーブルをEXCELに保存  投稿者:tk [00/3/28(火)17:28分]

以下のようなコードで解決できるとおもいます。


Dim rAccess As Access.Application
Dim sTableName As String

Set rAccess = New Access.Application
sTableName = "TEST"

With rAccess
Call .OpenCurrentDatabase("C:\Src.mdb", True)
Call .DoCmd.OutputTo(acOutputTable, sTableName, acFormatXLS, "C:\Dest.xls", False)
Call .CloseCurrentDatabase
Call .Application.Quit
End With

No.1212 EXCELとVBの連携  投稿者:てる [00/6/27(火)1:23分]

こんにちは、てるです。

逆引きヘルプにエクセルとの連携を書いていただき、ありがとうございました。
エクセルとVBを連携させようと思っていたのが
私だけでなくてよかったです。
もしかしたら、超初心者の質問かもしれませんが、
VBからEXCELのセルをコピーするには、どうしたらいいんでしょう?
代入していくという手でチャレンジしたんですが、
どうも時間がかかります。
エクセルから開いたCSVファイルを既存のエクセルファイルに一部分だけコピーしたいのです。
代入していかないとだめなんでしょうか?

No.1220 Re:EXCELとVBの連携  投稿者:みゃお [00/6/29(木)9:58分]

>VBからEXCELのセルをコピーするには、どうしたらいいんでしょう?

Copyメソッドでできませんか?
マクロ記録すればコードはできると思いますが。

No.1227 既存のExcel起動について  投稿者:ワンッ! [00/6/30(金)22:14分]

VBから既存のExcelを起動する手段として、以下の2つの手段で試しましたが、結果が異なりました。

この既存のExcelファイルにはマクロが含まれていて、1のパターンで起動すると、おなじみの
「このbookにはマクロが含まれています・・・」のメッセージボックスが表示されますが、
2のパターンでは、なにも聞かれずにエクセルを起動できます。この理由がなぜだかわかる方教えてください。

1 Set myXlsApp = CerateObject("Excel.application")
Set myXlsBook = GetObject("エクセルファイルのPATH")

2 Set myXlsAPP = CreateObject("Excel.Application")
Set myXlsBook = myXlsAPP.Workbooks.Open("エクセルファイルのPATH")

No.1229 Re:既存のExcel起動について  投稿者:みゃお [00/7/03(月)11:50分]

>   Set myXlsBook = myXlsAPP.Workbooks.Open("エクセルファイルのPATH")

マクロからWorkbooks.Openでブックを開くと、警告は表示されません。
これはEXCELのみで試しても同じです。

No.1291 EXCELのセルの値をテキストボックスに代入したい 投稿者:らぐりん [00/7/24(月)7:39分]

こんにちは、初めまして。

タイトルの通りなのですが、エクセルのセル(例えばA1)の値をテキストボックスに貼り付けたいのですが
どのようにすればよいのでしょうか。調べたのですが、テキストボックス→セルしかなかったので。。。
教えてください。
フォーム上には、コモンダイアログ(ファイルを開くためのダイアログを作成(commondialog1)と
テキストボックス1(text1)、コマンドボタン(読み込ませてセルの値を貼り付ける動作をさせるもの)
の3つが配置されています。


開発環境は、Windows98、VB6.0、EXCEL2000です。

よろしくお願いします。

No.1301 Re:EXCELのセルの値をテキストボックスに代入したい 投稿者:うめぴ [00/7/27(木)2:05分]

かなり下の方になりますが、らぐりんさんの質問についてです。

Excel の書き込みはした事があったので、そこから主要部分をはしょって修正してみました。

動かしてないので動作保証はしません。参考にどうぞ。



Private appExcel As Excel.Application



(ここから関数内で記述)



Dim xlbook As Excel.Workbook

Dim xlsheet As Sheets

Dim iX%,iY%



'*** Excel 初期化処理

Set appExcel = New Excel.Application

appExcel.Workbooks.Open FileName:="***ここにファイル名を記述***"



appExcel.Sheets(iSheet).Activate

'*** 座標を指定

appExcel.Goto "r" & Trim(Str(iY)) & "c" & Trim(Str(iX))

Text1.text = appExcel.ActiveCell.Value



Set appExcel = Nothing '*** Excel 解放


No.1305 VBからエクセルを印刷したい  投稿者:aki [00/7/27(木)12:57分]

こんにちは。

VB6を使って開発しています。
VBからエクセルシートを印刷したいのですがどうしたら良いのでしょうか?
object.printout で印刷されるのは分かっているのですが
印刷ダイアログを表示してから印刷をかけたいのです。
詳しい方がいらしたら教えてください。

No.1309 RE:VBからエクセルを印刷したい   投稿者:花ちゃん [00/7/27(木)23:54分]

印刷方法は、エクセルをVBから操作する を見て下さい。


印刷ダイアログを表示してから印刷したいと事であれば、
印刷ダイアログを表示してから印刷処理をすればいいのでは?

印刷ダイアログを表示の方法も逆引きヘルプにあります

No.1328 VBからExcelの設定を変更したい  投稿者:みぅみぅ [00/8/03(木)15:42分]

どなたか、ご存知の方教えて下さい。

VBからExcelの設定を変更したいんですが、
どのようにソースを書いたらよいのか分かりません。

Excel内で、ツール→オプション→全般→「設定」のR1C1参照形式
を私用するというものにチェックを入れれば良い話なのですが、
この処理をVB内でしてしまいたいのです。
Excelのマクロでは
application.ReferenceStyle = "xlR1C1"
となるようですが。。

どなたかご存知の方いらっしゃいましたらお願いします。

No.1329 re:VBからExcelの設定を変更したい  投稿者:くりちゃん [00/8/04(金)8:16分]

みぅみぅ さんへ。

 タイプライブラリを利用してExelを起動させて、設定項目を操作する方法のサンプルです。
 VBのメニューの[プロジェクト(P)]→[参照設定(N)...]で、"Microsoft Exel8.0 Object Library"
をチェックしてください。
 標準フォーム(Form1)にコマンドボタン(Command1)を貼り付け、以下のようにしてみてください。

Private Sub Command1_Click()
 Dim myExel As Excel.Application
 Set myExel = New Excel.Application
 myExel.Visible = True
 myExel.Workbooks.Add
 myExel.ReferenceStyle = xlR1C1
 Set myExel = Nothing
End Sub

※質問でOSのバージョン、VBのバージョン、Exelのバージョンの表記がないので、私の開発環境Win2000、
VB6.0(SP3)、Exel97でのお話です。

No.1501 ブックの再表示  投稿者:のんの [00/9/18(月)17:05分]

はじめまして。

VB6のOLEオートメーションを使用して、Excelを操作しております。
ブックをSaveし、手動でそのブックを表示しようとすると
【ウィンドウ】−【再表示】を行わなければなりません。
これを防ぐにはどうしたらよいでしょうか?

どなたかお教えください。
よろしくお願いいたします。

No.1502 RE:ブックの再表示  投稿者:花ちゃん [00/9/18(月)20:39分]

    保存する時に次の1行を追加してみては!

objExcelApp.Windows(1).Visible = True

No.1524 オブジェクトが消えない・・・。  投稿者:匿名 [00/9/26(火)18:17分]

以下のコードでオブジェクトが消えてくれません。

画面上にはエクセルを見せたくないので、裏で動かしていますが、
Quitしてもメモリ上に残ってしまいます。
どうしたらいいのでしょう?

Set XlsObj = CreateObject("EXCEl.Application")
With XlsObj
'"WrkFile.xls"OPEN
.Workbooks.Open FileName:=StrPath
With .Workbooks("WrkFile.xls")
'作業用のシートを追加し、名前を"Qry_MkWord"にする
.Worksheets.Add Before:=Worksheets("Qry_ForXls"), Count:=1
.Worksheets("Sheet1").Name = "Qry_MkWord"

'"Qry_ForXls"シートからWord差込印刷フィールド名を"Qry_MkWord"へコピー
.Worksheets("Qry_ForXls").Range("A1:BL1").Copy _
Destination:=Worksheets("Qry_MkWord").Range("A1:BL1")

'印刷データを6レコードづつペアで"Qry_MkWord"へコピー
i = 2
ii = 2
Do While Worksheets("Qry_ForXls").Range("A" & CStr(i)) <> Empty
.Worksheets("Qry_ForXls").Range("A" & CStr(i) & ":BL" & CStr(i + rec)).Copy
For j = 0 To 1
.Worksheets("Qry_ForXls").Paste Destination:= _
.Worksheets("Qry_MkWord").Range("A" & CStr(ii) & ":BL" & CStr(ii + rec))
ii = ii + rec + 1
Next j
i = i + rec + 1
Loop
.Save 'savechanges:=True
.Close
End With
.Quit
End With

Set XlsObj = Nothing

No.1525 Re:オブジェクトが消えない・・・。  投稿者:みゃお [00/9/27(水)10:50分]

.Worksheets.Add Before:=Worksheets("Qry_ForXls"), Count:=1

の行で、Before:=のあとのWorksheetsの前にもピリオドを付ける。

No.1531 RE:オブジェクトが消えない  投稿者:みゃお [00/9/28(木)15:19分]

あと、ここのWorksheetsの前

>Do While Worksheets("Qry_ForXls").Range("A" & CStr(i)) <> Empty

No.1530 RE:オブジェクトが消えない  投稿者:みゃお [00/9/28(木)15:17分]

ここのDestinationの後のにも付けました?

> '"Qry_ForXls"シートからWord差込印刷フィールド名を"Qry_MkWord"へコピー
> .Worksheets("Qry_ForXls").Range("A1:BL1").Copy _
> Destination:=Worksheets("Qry_MkWord").Range("A1:BL1")

No.1701 エクセルのシート名  投稿者:匿名 [00/12/05(火)14:34分]

VBレスキューで、エクセルをVB側から操作する例が出ていました。

その中で、シート名を指定する項目がありましたが、もし、シート名がわからないファイルを開く場合は、
どうやってシート名を取得すればいいのでしょうか?
いつも"Sheet1"とは限らないと思うのですが・・・

No.1704 RE:エクセルのシート名  投稿者:花ちゃん [00/12/05(火)17:09分]

  以下を試して下さい。


'エクセルのシート名の取得
For i = 1 To objExcelApp.Worksheets.Count
Debug.Print objExcelApp.Worksheets(i).Name
Next i

No.1731 エクセルの範囲削除??  投稿者:匿名 [00/12/15(金)12:02分]

VBでエクセルファイルを扱いたいたくて、VBレスキューを参考にいろいろやっています。

で、指定行のセルの内容のみ(行削除ではないです)を削除したいのですが

    With objExcelApp.Worksheets(strExcelSheet)

.Rows(2).Cells = ""
.Rows(3).Cells = ""
End With
とすると、確かにセル内はなにも無くなってるようなのですが、行数をチェックすると
ちゃんとあるように認識してしまいます。

つまり3行ある場合、上記なら、2行目と3行目の内容が無くなるので、1行だけになるはずなのですが
なぜですか?  どなたか教えていただけますか?

No.1739 Re: エクセルの範囲削除??  投稿者:みゃお [00/12/18(月)11:52分]

内容が無くなっただけでは、EXCELの「最後のセル」の認識は変化しません。手作業で試しても同じはずです。

行削除を行ってください。

No.1756 Wordの連続印刷について  投稿者:shima [00/12/26(火)17:39分]

VB5.0でWordファイルを連続して印刷するプログラムを作成しています。

環境 Windows98 word2000
wordファイルを1つ印刷する度に、ファイルを閉じて、wordをquitしているのですが、
どうも100ファイルほど印刷すると止まってしまいます。

データは、\A\1から\A\29フォルダーを連続して読み込み(ファイル数180、総ページ数460)です。
原因と対策を教えて下さい。

No.1761 Wordの連続印刷について  解決!  投稿者:shima [00/12/27(水)14:34分]

どうも印刷待ちがたまるとメモリ不足になっていたようだったので

EnumJobsを使って、印刷ジョブが5個を超えた場合は、
プログラムを待ち状態にすることで解決できました。

No.1799 VBからEXCELの操作  投稿者:プー [01/1/12(金)8:23分]

はじめまして。いつもここのHPを参考にさせていただいています。

今、ここのHPの「VBからEXCELの操作」の所のコードを参考に
EXCELを操作しているんですが、セルにデータ(今はグリッドのデータ)
を代入した後、表のように枠線をつけたりセルを塗りつぶしたりしたいんですが
どうもうまくいきません。今まではEXCLのマクロで書いたものを
そのままVBのコードに張り付けていたもので・・・

  Range("E11:G13").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("E11:G11").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range("F9").Select

とこんな感じにです。
でもこれだとエラーになってしまうので・・・。
どなたか分かる方、教えて下さい。
お願いします!!。

No.1803 VBからEXCELの操作  投稿者:プー [01/1/12(金)13:27分]

Rabbitさんレスありがとうございます!!。

私の説明不足でした。
エラーがでるのは
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
の所なんです。
「オブジェクト変数又はWITHブロックが設定されていません」
となります・・・。

No.1802 RE:VBからEXCELの操作  投稿者:Rabbit [01/1/12(金)12:57分]

Selection.Interiorでエラーになるのですか?

もしそうでしたら
For Loop = 5 to 7 (E,F,G)
With Cells(11, Loop).Interior
.ColorIndex = 6
.Interior.Pattern = xlSolid
End with
Next
のようにして試して見てください。

No.1807 RE:VBからEXCELの操作  投稿者:Rabbit [01/1/13(土)8:52分]

下記の方法では、どうでしょうか。

With xlSheet.Range("E11:G13).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

No.1826 VBからEXCELの印刷プレビュー  投稿者:NSP [01/2/06(火)17:29分]

VBレスキューの印刷関係で「EXCELを使って印刷」

というので印刷はできたのですが、印刷プレビューの方法
が分からず困っています。
どなたかご存知の方、回答お願いします。

No.1880 RE:VBからEXCELの印刷プレビュー    投稿者:shima [01/2/23(金)12:18分]

プレビュー表示するならば、

Set objExcelapp = CreateObject("Excel.Application")
With objExcelapp
.WorkBooks.Open ("ファイル名")
.Application.Visible = True
.Worksheets(.ActiveSheet.Name).PrintPreview
End With

でどうでしょうか?

No.1899 VBからExcelのファイルを開く  投稿者:匿名 [01/3/01(木)11:55分]

VB初めてまだ1ヶ月の初心者です。

VBからエクセルのファイルを開く時、既にそのファイルが開かれているとエラーになって
しまうのですが、ファイルが開いているかどうか調べるにはどうすればいいのでしょう?
ファイルが開かれているかどうかを調べる関数があるのでしょうか?
どなたか知っている方がいれば教えていただけないでしょうか

RE:VBからExcelのファイルを開く  投稿者:花ちゃん 

逆引きヘルプの 指定のファイルが使用中かどうかを調べる を見て下さい。


No.1900 印刷時にファイル出力する方法  投稿者:shima [01/3/02(金)11:17分]

複数のファイル(Word or Excel)を印刷時に連続でファイル出力したいのですが、

VBで制御することは可能でしょうか?
プログラム上で、ファイル出力の画面を表示することは
できるのですが、ヘルプを見ると出力先ファイル名はVBからは
設定できないとありました。
何か方法はありますか?
環境:Windows95 ,VB5.0(SP3)

No.1916 印刷時にファイル出力する方法 その3  投稿者:shima [01/3/05(月)14:36分]

のらなこいさんの意見を参考に

WORDのVBAを調べて、下記のように記述したらファイル出力できました。
WordApp.PrintOut PrintToFile:=True, OutputFileName:="F:\test\" & ファイル名 & ".prn"
ただ、EXCELの方は、この記述だと上手くいかないのですが、VBAでなんとか
なるかな、というところです。

No.1960 VBからEXCELファイル作成  投稿者:ばふっ [01/3/22(木)18:14分]

こんにちは。初めて投稿させていただきます。


現在、VB6でEXCELのファイルを出力するプログラムを作っています。
ファイル作成時に、一部のセルを結合させたいのですが、ヘルプ等を検索してもわかりません…。

どなたかご存知の方はいらっしゃいませんでしょうか?
お知恵をお貸し下さい!宜しくお願い致します。

No.1969 RE:VBからEXCELファイル作成  投稿者:gtk [01/3/26(月)16:39分]

邪道といわれるかもしれませんが、実際にEXCELをつかうという方法があります。

EXCELを使うことにより、VBAでプログラムを組むことができるようになります。
(まあ、VBでやっているのではなくEXCELでやっているので当然ですね・・・)
どういったことをやりたいのかログからはちょっとわかりづらいところがありました。
ひとつだけ、セルを結合するという具体例がありましたので、それを行うプログラムです。
注意:このプログラムはEXCELがインストールされていないとできません。

'---------------------------------------------------------------------------------------
'サンプルプログラム
'---------------------------------------------------------------------------------------
Dim ExlApp As Excel.Application 'EXCELアプリケーションオブジェクト変数を宣言
Set ExlApp = New Excel.Application '新たにEXCELアプリケーションオブジェクトをセットする
'上のセットステートメントを実行すると、表示されていませんがEXCELが起動しています。
'起動されているか確認したい場合は、下のコメントをはずすとEXCELが表示されます。
'(CTL+ALT+DELでも確認できます。"Excel"と表示されていればOK)
'ExlApp.Visible = True
With ExlApp
'VBAが使用できますので、VBAでファイルを開く。
'(この例では、ファイルを開いていますが、作成するのでしたらVBAが
'使えますのでVBAをつかってやってみるのもいいかもしれません)
.Workbooks.Open FileName:="C:\My Documents\Book1.xls"
'同じくセルを結合
.ActiveWorkbook.ActiveSheet.Range("A1:B1").MergeCells = True
'ファイルをセーブ
.ActiveWorkbook.Save
'EXCELを終了する。
.Quit
End With
'EXCELアプリケーションオブジェクト変数を解放する(必ず解放してください)
Set ExlApp = Nothing

No.1981 Excelで印刷したい  投稿者:佐藤 慎二 [01/3/29(木)12:03分]

VBからExcelを起動し、データをExcelへ渡すことはできるのですが、データを渡した後に

自動的に印刷するようにしたいのですが、どのようなコードを書けばいいのか良くわかりません。
このようなケースでわかる方いましたら、教えてください.

No.1984 RE:Excelで印刷したい    投稿者:旦那 [01/3/30(金)9:03分]

よければどうぞ。但し、変数の宣言などは、省略しているので適当に。

これが、正しいのかわかりませんが、印刷は出来ます。

Set oleExcel = GetObject(, "Excel.Application")
If Err.Number <> 0 Then 'Excelが起動されていない
Set oleExcel = CreateObject("Excel.Application")
End If

'シート名
strSheetName = "sheet1"
strFileName = "c:\a.xls"
'ブックを開く
oleExcel.Workbooks.Open FileName:=strFileName
'シート1をカレントにする
oleExcel.ActiveWorkbook.Sheets(strSheetName).Activate
'印刷
oleExcel.ActiveWorkbook.Sheets(strSheetName).PrintOut

No.1985 RE:Excelで印刷したい  投稿者:花ちゃん [01/3/30(金)9:05分]

ここのHPの逆引きヘルプ一覧の中の ”エクセル******” を参考にして下さい。


No.2029 マクロを含むEXCELファイル参照について  投稿者:ショウ [01/4/18(水)15:09分]

はじめまして、最近VB6.0で開発を始めたショウといいます。

現在EXCELファイルを参照するプログラムを組んでいるのですが、
このEXCELファイルにマクロが含まれていると、
VBから参照した時にマクロを有効にするかどうかのダイアログが出てしまいます。
(ちなみに参照方法はGETOBJECTです)
このメッセージを出さないように参照する方法はあるのでしょうか?
(例えば、参照するときに常にマクロを無効にするとか)
どなたか知っている方がいらしたら是非教えて下さい。
よろしくお願いします。

No.2030 RE:マクロを含むEXCELファイル参照について  投稿者:花ちゃん [01/4/19(木)13:33分]

過去のログ 1227番 及び 1229番 を見て下さい。

No.1227 既存のExcel起動について  投稿者:ワンッ! [00/6/30(金)22:14分]

VBから既存のExcelを起動する手段として、以下の2つの手段で試しましたが、結果が異なりました。

この既存のExcelファイルにはマクロが含まれていて、1のパターンで起動すると、おなじみの
「このbookにはマクロが含まれています・・・」のメッセージボックスが表示されますが、
2のパターンでは、なにも聞かれずにエクセルを起動できます。この理由がなぜだかわかる方教えてください。

1 Set myXlsApp = CerateObject("Excel.application")
Set myXlsBook = GetObject("エクセルファイルのPATH")

2 Set myXlsAPP = CreateObject("Excel.Application")
Set myXlsBook = myXlsAPP.Workbooks.Open("エクセルファイルのPATH")

No.2073 エクセル終了について  投稿者:ウエリン [01/5/11(金)10:54分]

VB上でエクセルをCreateして立ち上げ、


(Dim G_Excel as Object)

G_Excel.Application.DisplayAlerts = False
G_Excel.Application.Quit
Set G_Excel = Nothing

と、して終了させています。その後、更に新しくエクセルを立ち上げ(Create使用)、処理をし、終了する。
この処理を繰り返すという仕様なのですが、前回のエクセルのインスタンスがきちんと
落ちているか判定するために、こちらの逆引きヘルプにあるようなAPIを使用
しています。

Public Function Excel_Check() As Integer

Const WM_USER = 1024
Dim hwnd As Long

Excel_Check = True

DoEvents
' Excel が起動中の場合、この API 呼び出しからはハンドルが返ります。
hwnd = FindWindow("XLMAIN", 0)

If hwnd <> 0 Then ' 0 は、Excel が起動していないことを示します。
Excel_Check = False
Exit Function
End If

End Function

上記のようにエクセルの起動チェックを入れているのですが、エクセルの落ちる速度より早く上記の処理に
入ってしまうのか、通常実行時には、ここで「エクセルが立ち上がっている」と判定されて
しまいます。ちなみに、F8で順次実行すると問題なく処理されているようです。
こういった現象を解決するには、どのように対処すべきでしょうか?
また、こういった仕様は可能なのでしょうか?
宜しくご指導お願いします。


No.2074 RE:エクセル終了について  投稿者:花ちゃん [01/5/11(金)12:47分]

やはりメモリから解放される前に調べるようですね?

エクセル終了処理後次のように時間待ちすればOKですが?
Dim st As Long
st = Timer
Do While Timer - st < 1
DoEvents
Loop
ファイル保存等されているとその処理がすんでからでないとだめなようです。
その場合 xlApp.DisplayAlerts = False を試して下さい。
印刷処理の場合は終了まで待つような設定があったと思います

No.2095 「VBとエクセル間でデータのやりとり」で、  投稿者:TOMO [01/5/18(金)17:19分]

こんにちは。質問させていただきます。

逆引きヘルプの「Excel・Word関係」の「VBとエクセル間でデータのやりとり 」を
試してみたのですが、「ユーザー定義型は定義されていません」とエラーが出てしまいます。

対処方法を教えていただけないでしょうか。
よろしくお願いします。

No.2097 RE:VBとエクセル間でデータのやりとり  投稿者:花ちゃん [01/5/18(金)17:41分]

VBからエクセルを操作する(その1)のとこでも書いていますが


まず、プロジェクト→参照設定でMicrosoft Excel *.* Object
Library にチェックを入れておいて下さい。
VBからExcel等を操作されるのが初めてでしたら、まずその1から試して下さい。
いきなりデータのやりとりのところだけ試されると中には省略、したりしている部分もあり
また、途中でエラーが発生したりするとメモリに残ってしまったりしてフリーズ等を起こします。
せめて、目を通すだけでもしておいて下さい。
尚、サンプルはエラーチェックをしておりません。実際使われる場合はエラーチェックをしておいて下さい。

No.2138 VBからエクセルマクロを実行  投稿者:かおり [01/5/23(水)15:59分]

はじめまして。

現在開発しているPGでエクセルファイルに集計結果データをはきだしています。
そのエクセルファイルに埋め込まれたマクロをVB上から実行させたいのですが、
エクセルを使用したPGを作るのは今回が初めてなもので、何から調べていいのか
すら分からない状態です。

どなたかご指導宜しくお願いします。

No.2139 RE:VBからエクセルマクロを実行  投稿者:花ちゃん [01/5/23(水)17:10分]

ここのHPのExcel&Word関係を参考にして下さい。


No.2299 新規保存について  投稿者:memi [01/6/18(月)9:55分]

超初心者です。いつも参考にさせて頂いてます。

現在以下のようにエクセルを呼び出し編集し、上書き保存をしています。
この保存を新規保存とし毎回名前を変更して保存したいのですがどうすれば良いのか
わかりません。勿論、エクセルについての花ちゃんのページは拝見させて頂きました。
 ' Worksheet を名前をつけて保存します。
 xlSheet.SaveAs "c:\Temp.xls"

'名前を付けて保存の場合
  objExcelApp.SaveAs "C:\test01.xls"
等は、ファイル名を既に、ここで指定しているのだと思いますが、
開くファイルはいつも同じで、毎編集後新規ファイルとしてその都度名前をつけて、
保存出来るようにしたいです。
どのようにすれば良いのでしょうか。 


Dim number As Integer


Private Sub Command2_Click()
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet

Open "ryousan" For Input As 1
Input #1, number
Close #1
Text4.Text = number

Set xlapp = New Excel.Application
Set xlbook = xlapp.Workbooks.Open("C:\ttt.xls")
Set xlsheet = xlbook.Worksheets("aaa")

xlsheet.Cells(number, 3) = C3.Text
xlsheet.Cells(number, 4) = Text1.Text
xlsheet.Cells(number, 1) = C1.Text
xlsheet.Cells(number, 6) = Text7.Text
xlsheet.Cells(number, 5) = C5.Text
xlsheet.Cells(number, 7) = Text6.Text
xlsheet.Cells(number, 8) = Text8.Text
xlsheet.Cells(number, 9) = Text9.Text
xlsheet.Cells(number, 10) = Text10.Text
xlsheet.Cells(number, 11) = Text11.Text

xlapp.Application.Visible = True
xlbook.Application.WindowState = xlMaximized
xlsheet.PrintPreview

'book保存
xlbook.Save

xlapp.Application.Visible = False

xlapp.Quit
Set xlapp = Nothing
Set xlbook = Nothing
Set xlsheets = Nothing

number = number + 1
Open "ryousan" For Output As #1
Write #1, number
Write #1,
Reset

End Sub

宜しくお願い致します。

No.2301 RE:新規保存について  投稿者:花ちゃん [01/6/18(月)10:36分]

保存の場所で下記コードを追加して下さい。


xlApp.DisplayAlerts = False  'メッセージを非表示に
Dim strFileName As String
strFileName = "c:\Temp" & Format$(Now, "yyyymmddhns") & ".xls" _
                                         'ファイル名に保存時の 日時・時間・秒 を不可している

xlSheet.SaveAs strFileName  '新規保存

No.2305 エクセル保存  投稿者:みふ [01/6/20(水)17:18分]

はじめまして。VBど素人です。

エクセルを参照して終了するときに保存しないで終了したいのですが、
どなたかご存じの方、教えていただけないでしょうか。
よろしくお願いします。

No.2314 RE:エクセル保存  投稿者:花ちゃん [01/6/21(木)2:59分]

解かりましたか?

>保存しないで終了したいのですが 

保存しないで終了する方法等どこにも載っていません。
なぜなら保存処理をしなければ保存できないからです。
発想の転換をしましょう。エクセル単独で使用しても同じなのですが、書き換えて保存せずに終了しようとすると 「変更を保存しますか」のメッセージがでてきますがそのメッセージを表示しないようにするか「いいえ」を クリックする方法が解かれば保存せず終了できますよね
だから、質問もそのようにすれば、回答も一回ですみますよね

   オブジェクト.DisplayAlerts = False で非表示になります。

「VBとエクセル間でデータのやりとり」のサンプルの中で使っています

No.2333 VBからエクセルのセルの色指定  投稿者:今回匿名 [01/6/23(土)19:21分]

質問です。


既存のエクセルのセルに何色がついているか
判断する方法を教えてください。

よろしくお願いします。

No.2336 RE:VBからエクセルのセルの色指定  投稿者:花ちゃん [01/6/24(日)1:05分]

ヘルプにもここにも載っていますよ!

まず自分で解かる範囲は調べましょう Color とか RGB とかをヘルプで見るとか!
MyColor = xlSheet.Range("A1:A1").Interior.Color
xlSheet.Range("A3:A4").Interior.Color = MyColor

No.2334 エクセルの行番号の取得  投稿者:みる [01/6/23(土)21:45分]

VBにてはじめてプログラムを作成しているのですが、

わからない事があるので教えてください。

既に起動しているエクセルの、アクティブになっているセルの
行番号だけを、取得することは出来ないでしょうか?

よろしくご教授お願いします。

No.2337 RE:エクセルの行番号の取得  投稿者:花ちゃん [01/6/24(日)1:51分]

こちらも下記のようにヘルプに載っていますよ


対象となるオブジェクトを指定しない場合は、アクティブウィンドウのアクティブセルが返されます。

アクティブセルと選択セル範囲を混同しないように注意してください。 アクティブセルは、現在の選択セル範囲内の単一セルを指します。
選択セル範囲には、複数のセルが含まれる場合がありますが、アクティブセルはその中の 1 つだけを指します。

次に示すコードはいずれもすべて同じアクティブセルを表しています。

ActiveCell
Application.ActiveCell
ActiveWindow.ActiveCell
Application

以上ヘルプより抜粋

MyCell=xlApp.ActiveCell.Address

MyCell=$D$6 が取得できます 複数セルの場合最後に指定したセルが返ります。
何をしたいかも書けば違った回答が返ってくる場合がありますよ。
文面からは複数のセルか範囲かも判断しかねますので???

その後、いろいろ試した結果
xxx.ActiveCell.Row で取得がうまく出来ました。
どうもありがとうございました。


No.2347 エクセル終了時のダイアログについて  投稿者:プーさん [01/6/25(月)18:57分]

こちらに載っている"エクセルの表をクリップボード経由でVBに貼り付け活用"を参考に

プログラムを作成してみたんですがエクセル終了時の
"xlApp.Quit"時に
「〜への変更を保存しますか」と「クリップボードに大きな情報があります。〜」という二つのダイアログが表示されます。
この二つのダイアログを表示させないようにすることは可能でしょうか?
できるだけVB上で制御を行いたいのですが…。
よろしくお願いします。

No.2350 Re:エクセル終了時のダイアログについて    投稿者:ひよっこ [01/6/25(月)23:50分]

まず、〜への変更を保存しますか?のメッセージボックスを出さなくするには

WorkBooks.Closeの引数にTrueかFalseを指定すればOKです。
Falseを指定した場合、保存せずにブックを閉じることになります。

あとはクリップボードですが、これはクリップボードの中身をクリアしていまえば
よいのではないのでしょうか。


No.2352 RE:エクセル終了時のダイアログについて  投稿者:花ちゃん [01/6/26(火)0:39分]

VBとエクセル間でデータのやりとり のところに書いているのですが 


  '保存時のダイログボックスを非表示に設定
  '特に非表示にしなくてもよいが、なんども保存しますか?と聞いてくるので面倒だから
  xlApp.DisplayAlerts = False

でOKだと思います

No.2348 エクセル関連  投稿者:みふ。 [01/6/25(月)19:25分]

教えてください。


@エクセルで上書き保存をするとき、
 「〜は読みとり専用です。アクセスできません。」
 というダイアログが出ます。
 VBから読みとり専用を解除する方法を
 教えてください。

Aエクセルで新規ファイルを作成しました。
 シートを追加せずに既存のシートの名前を
 変更したいのですがどうすればよいでしょうか?

ヘルプをくまなく探しましたが、わかりませんでした。
どなたかご存じの方、回答願います。

No.2353 RE:エクセル関連  投稿者:花ちゃん [01/6/26(火)0:41分]

1.場合

Excel単独で使用しても同じですが! 
起動中のファイルに対しては変更できません。
起動する前に GetAttr で調べ SetAttr ("C:\Temp.xls"), vbNormal で変更
同じファイルを2重に起動した場合も後のファイルは読み込み専用かと思います。

2.の場合
Name    書式   P    コントロールまたはオブジェクトの名前を取得・設定します
ここの主要キーワードリファレンスより

Sheet2 の名前を変更します。
xlBook.Worksheets(2).Name = "花ちゃん"

No.2396 VBからエクセルを操作する方法  投稿者:匿名 [01/7/02(月)23:28分]

VBからエクセルを操作するのページを参考にプログラム

を作ってみました。もう少し発展したプログラムを作ろう
と思うのですが、下記の手順を教えてください。

1.シートのコピー方法。sheet1を原紙しする。
2.複数シートを一括して印刷する。

No.2397 RE:VBからエクセルを操作する方法  投稿者:花ちゃん [01/7/02(月)23:55分]

あそこに書いてあることを試して見られたら出来るようになると思います。

判らない部分は、マクロで記録してそれを解析すれば大体できますよ!
それでも判らなければ、わからない部分だけ質問しましょう。

No.2415 エクセルのセル 小数点以下1桁表示  投稿者:みふ。 [01/7/06(金)21:56分]

いつもお世話になっております。


エクセルのセルに小数点以下1桁で表示させたいのですが、
どうすればよいでしょうか?

どなたか回答お願いします。

No.2418 続:エクセルのセル小数点以下1桁表示  投稿者:みふ。 [01/7/07(土)17:34分]

たびたびすみません。

花ちゃんさんの方法で試してみましたが、
"###.0"とすると、小数点以下が四捨五入されてしまいます。
四捨五入せずに表示するにはどうすればよいですか?
回答お願いします。

No.2417 RE:エクセルのセル 小数点以下1桁表示  投稿者:花ちゃん [01/7/07(土)0:07分]

xlSheet.Range("A1").NumberFormat = "###,###.0"


これでどうでしょう

No.2419 RE:続:エクセルのセル小数点以下1桁表示  投稿者:花ちゃん [01/7/07(土)23:09分]

>"###.0"とすると、小数点以下が四捨五入されてしまいます。

これはエクセル単独で実行されても同じです。
四捨五入が自動でされるのがいやなら、データを切り捨てて下さい。
やり方はエクセルの関数 ROUNDDOWN関数を使う方法と 元のデータを10倍して整数だけ求め10で割る
=ROUNDDOWN(123.456,1)
= Fix(123.456 * 10) / 10
ROUNDDOWN関数はエクセルのヘルプで、Fix関数 Int関数はVBのヘルプで調べて下さい。

No.2432 RE:続:エクセル小数点以下1桁表示  投稿者Fみふ。 [01/7/11(水)9:44分]

花ちゃんさん、回答ありがとうございました。


xlSheet.Range("A1").NumberFormatLocal = "###,###.0"

で、四捨五入されることなく表示できました。
ありがとうございました。

No.2514 エクセル終了について  投稿者:みふ。 [01/7/25(水)9:05分]

エクセル操作について質問です。


Set objExcelApp = CreateObject("Excel.Application")
Set objExcelBook = objExcelApp.Workbooks.Open(strExcelFile)

でオープンして何らかの情報を取得し、

objExcelApp.DisplayAlerts = False ''保存時のダイアログを非表示設定
objExcelApp.Application.Quit ''エクセルの終了
Set objExcelBook = Nothing
Set objExcelApp = Nothing ''オブジェクトの解放

で終了させているのですが、終了させた後、Ctrl+Alt+Delで見てみると
Excelがまだ残っています。
上記終了方法では、完全に終了できていないのでしょうか?

Excelが残っている状態のままで、また同じようにオープンして
今度は書込にいきたいのですが、
  ActiveXはオブジェクトを作成できません
というエラーが出てオープンできません。
これはExcelが残っていることと因果関係があるのでしょうか?

以上2点、どなたか回答お願いします。

No.2523 続:エクセル終了について  投稿者:みふ。 [01/7/25(水)23:21分]

花ちゃんさんのご指摘の通り、オープン、クローズには

問題ありませんでした。
1行ずつコメントアウトしていったら
以下のコードのjのループ回数を10回にするとメモリ上に
残りませんでした。

Dim objExcelApp As Excel.Application
Dim objExcelBook As Excel.Workbook
Dim strExcelFile As String

Set objExcelApp = CreateObject("Excel.Application")
Set objExcelBook = objExcelApp.Workbooks.Open(strExcelFile)

For i = 0 To 255

With objExcelApp.Worksheets(gPstMng.strChk)

For j = 0 To 19 ←このループを10までにしたらメモリに残らない
bf_h(0, i, j) = .Cells(intC + 9 + j, intR).Value
bf_i(0, i, j) = .Cells(intC + 43 + j, intR).Value
bf_j(0, i, j) = .Cells(intCol + 43 + j, intRow).Interior.Color
Next j
End With
Next i

objExcelApp.DisplayAlerts = False ''保存時のダイアログを非表示設定
objExcelApp.Application.Quit ''エクセルの終了
objExcelApp.DisplayAlerts = True ''保存時のダイアログを表示設定
Set objExcelBook = Nothing
Set objExcelApp = Nothing ''オブジェクトの解放


ループ回数がメモリ上に残る原因とは思わないのですが
上記コードに何か問題はあるでしょうか?
お手数ですがよろしくお願いします。


No.2516 RE:エクセル終了について  投稿者:花ちゃん [01/7/25(水)11:45分]

多分、問題は でオープンして何らかの情報を取得し、 この部分かと思います


ここのHPのエクセル及びWord関係の VBからExcel及びWordを操作する時の注意事項 の5番あたりに該当する
事が書いてあるのではないでしょうか?
一つ一つコメントアウトしながら探して見て下さい。

>これはExcelが残っていることと因果関係があるのでしょうか

そのとおりです。エクセルが立ち上がっているのと同じ状態と判断されるのです。

No.2560 Re: 続:エクセル終了について  投稿者:みゃお [01/8/01(水)16:01分]

まだ見ていらっしゃるでしょうか?


>以下のコードのjのループ回数を10回にするとメモリ上に
>残りませんでした。
ということは、下記に当てはまっているのだと思います。

[XL2000] オートメーションでセルの値の取得やコピーを繰り返すとハングアップ
http://www.microsoft.com/JAPAN/support/kb/articles/J049/6/06.htm

No.2526 使用中のエクセルファイルを閉じる方法  投稿者:YOU−J [01/7/26(木)9:38分]

はじめまして。質問です。

いま、VBからEXCELの「指定のファイルA」を開いて「別のファイル名B」で保存、
そのファイルに書き込んで上書き保存という操作をしています。
ところが、「別のファイル名B」のファイルがエクセルで使用中の場合、どうしてもうまく書き込みできません。
すでに使用中のファイルBを閉じることができていないようで、元のファイルAに上書きをしてしまうのです。
逆引きヘルプで「エクセルが既に起動中かどうかを調べる」を読んだのですが、
指定のファイルが使用中かどうかを調べる所まではわかったものの、
使用中のファイルを閉じる方法がわかりませんでした。
APIを利用すると起動中のアプリをVBから終了することができるようですが、APIは今回使用不可なのです。

使用中のファイルを閉じる方法がもしありましたら、ご指導をお願いします。

No.2533 RE:使用中のエクセルファイルを閉じる方法    投稿者:花ちゃん [01/7/26(木)21:00分]

APIを使わずに終了させたいのなら


AppActivate "Microsoft Excel - Book1"
SendKeys "%{F4}"

  これで終了できませんかね
  もち、Book名は終了したいBook名で

No.2595 Underline付文字をエクセルへ代入したい。  投稿者:memi [01/8/07(火)14:54分]

超初心者でいつも参考にさせて頂いています。

早速ですが、表題の件につきまして教えて頂けませんでしょうか。

VBからエクセルを操作していますが、textboxに入力した文字にUnderlineをつけ、
そのUnderlineがついている状態をエクセルに表示させたいのですが、Underlineが
エクセル上では消えてしまいます。どのように考えれば良いのか教えて下さい。

form1
Checkbox
text
command
を配置し、checkboxをチェックするとtextboxの入力文字に下線が付くようにしています。
それを単純にセルへ代入しています。

Private Sub Check1_Click()
If Check1.Value = 1 Then
Text1.Font.Underline = True
Else
Text1.Font.Underline = False
End If
End Sub

Private Sub Command1_Click()
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet

Set xlapp = Excel.Application
Set xlbook = xlapp.Workbooks.Open("C:\ggg.xls")
Set xlsheet = xlbook.Worksheets("ggg")

xlsheet.Cells(6, 6) = Text1.Text

xlbook.Save
xlapp.Application.Visible = False
xlapp.Quit

Set xlapp = Nothing
Set xlbook = Nothing
Set xlsheet = Nothing

End Sub

宜しくお願いします。

No.2599 re:Underline付文字をエクセルへ代入したい。  投稿者:ゆー太郎 [01/8/07(火)18:45分]

>エクセルのセルの書式設定等で設定するという事でしょうか?


そうです。テキストボックスのUnderLineプロパティの値を、そのまま
セルの書式設定のUnderLineプロパティに設定してやれば良いですよね。

Worksheets("Sheet1").Cells(6, 6).Font.Underline = Text1.Font.Underline
とか。

No.2597 メッセージボックスを消す方法  投稿者:のりか [01/8/07(火)16:35分]

 まだ、プログラムをはじめたばかりなのでよろしくお願いします。

VBからExcelに出力する際に、メッセージボックスがでてきて”記録しますか?”
 とでるんですが、これを消し方法を教えてください。お願いします。

No.2604 RE:メッセージボックスを消す方法  投稿者:花ちゃん [01/8/08(水)21:46分]

>VBからExcelに出力する際に、メッセージボックスがでてきて”記録しますか?”


VBからExcelに出力する際には多分”記録しますか?”といったメッセージは
表示されないと思うのですが?

Excel を閉じる時に ”変更を保存しますか” じゃないですか?
状況は正確に記入して頂かないと正しい答えが出せません。

保存の確認のダイアログを非表示にするなら
xlApp.DisplayAlerts = False

No.2607 re: Msgボックスを消す方法  投稿者:のりか [01/8/09(木)11:55分]

花ちゃんどうもありがとうございました。花ちゃんのおかげで解決できました。

あと、投稿するとき正確にに入れるように気をつけます。

No.2632 VBからエクセルの印刷について  投稿者:せいくん [01/8/16(木)16:34分]

印刷後に、”このシートを保存しますか?”のメッセージを出さないように

するには、どうしたらいいのか、教えてください。

No.2637 Re:VBからエクセルの印刷について    投稿者:みさ [01/8/17(金)16:50分]

メッセージを出さない為には:DisplayAlerts = False


ブックやシートのcloseメソッドのときにsavechangesのパラメーターをFalseにすることで、
保存せずに閉じることができます。

だったような記憶が・・・・。

No.2651 エクセルのシートのコピー  投稿者:花ちゃん大好き [01/8/23(木)11:02分]

初心者なのでよろしくお願いします。

エクセルのシートのコピーをVBからやりたいのですが、わからないので
お願いします。あと、すいませんがほんとに初心者なのでなるべく、
詳しくお願いします。

No.2652 Excelのsheetをコピー    投稿者:匿名 [01/8/23(木)11:32分]

お願いします。困ってます。返事ください。

VBよりExcelブック内のSheetをコピーする方法を教えてください。
下記のプログラムを作成するつもりです。

■プログラム概要
0.前準備としてExcelで帳票の雛型を作成しておく。
1.VBよりExcelを起動し、雛型のsheetをcopyする
2.CSVデータをよみ、copyされたsheetにデータをセットする。
3.CSVデータが無くなるまで1〜3を繰り返す。
4.データが無くなったらsheetを一括して印刷する。

■動作環境
Windows2000SP2
VB6.0SP3
ほんとに宜しくお願いします。

No.2653 RE:エクセルのシートのコピー  投稿者:花ちゃん [01/8/23(木)13:21分]

マクロでシートのコピーをしてみて下さい。

それをVBから実行すれば出来ると思います。
ちなみに記録されたマクロを見ると

Sheets("Sheet1").Select
Sheets("Sheet1").Copy Before:=Sheets(1)

このようになります。後は自分で考えて試して見て下さい。
VBからエクセルを操作する場合このようにやりたい事をマクロで
記録して、見てみると操作の方法が解りますよ

No.2711 Excelのチェックボックスの情報取得  投稿者:匿名希望 [01/9/04(火)2:16分]

はじめまして、

早速ですが質問です。
VBからエクセルを操作する際に
エクセルのセルの情報は取得できるのですが、
チェックボックスの情報の取得(チェック、未チェック)
の仕方がわかりません、どなたかご存知の方が
いらっしゃればお教え下さい。

No.2721 Re:Excelのチェックボックスの情報取得    投稿者:VB太郎 [01/9/06(木)18:20分]

参照設定でMicrosoft Excel 9.0にチェックをいれて

以下のように変数を定義します
Dim wExcel As Excel.Application
Dim wWorkBooks As Excel.Workbook
Dim wWorkSheets As Excel.Worksheet
Dim wCheck As Excel.OLEObject

Set wExcel = New Excel.Application
Set wWorkBooks = wExcel.Workbooks.Open("D:\Book.xls")
Set wWorkSheets = wWorkBooks.Worksheets(1)
Set wCheck = wWorkSheets.OLEObjects(1)

MsgBox wCheck.Object.Value
wExcel.Quit

Set wExcel = Nothing
Set wWorkBooks = Nothing
Set wWorkSheets = Nothing
Set wCheck = Nothing

※注)Excelのチェックボックスは チェック:True 未チェック:Falseです。

No.2842 終了したはずのExcelが残っている  投稿者:みさ [01/9/27(木)15:18分]

こんにちは、みさと申します。上記の件でアドバイスをお願いします。


VBからExcelを開いてデータの印刷処理を行っています。
フォーム上にMSFlexGridに表示されているデータを一括コピーし、
既存のExcelファイルを開いてデータを貼り付けします。
その後、Excel側にあるマクロを実行して、印刷を行っています。
印刷が終了したら、オブジェクトは解放しています。
それが下のコードです。

Private Sub cmdFPrint_Click()

Dim xlAppl As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim strSheet As String

Select Case intFuyouFlg
Case 0, 1, 2
strSheet = "消滅以外"
Case 3
strSheet = "消滅"
End Select

Set xlAppl = New Excel.Application
Set xlBook = xlAppl.Workbooks.Open("D:\DiskMng\一覧表.xls")
Set xlSheet = xlBook.Worksheets(strSheet)

xlBook.Application.Visible = True
xlSheet.Activate

With mgFuyoulist
.Row = 1
.Col = 1
.RowSel = .Rows - 1
.ColSel = .Cols - 1

Clipboard.Clear
Clipboard.SetText .Clip, vbCFText
xlSheet.Paste _
Destination:=xlSheet.Range(Cells(2, 2), Cells(1 + .RowSel, 1 + .ColSel))
End With

xlAppl.Run "一覧表.xls!ListPrint", 1, 0

xlBook.Close (False)
xlAppl.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlAppl = Nothing

Exit Sub

印刷処理が終わった後、違うデータで印刷しようとすると
Excelにデータを貼り付ける部分でエラーが出てうまくいきません。

ctrl + Alt + Del で見るとExcelが2つ起動されており、
1度目に印刷を行った時に、Excelが終了せず残ってしまっているようでした。

私の書いたコードはこれで間違いないのでしょか?
また、このような現象を回避する方法はあるのでしょうか。
どなたかご教授下さい、よろしくお願い致します。

No.2844 RE:終了したはずのExcelが残っている  投稿者:MIZO [01/9/27(木)16:22分]

参考程度に・・・あまり詳しくはないので(^^ゞ


まず、
Set xlAppl = New Excel.Application
で、New宣言するのであれば
Dim xlAppl As Excel.Application
のNewは無くていいかと思います。

メモリ上にExcelが残る原因は
xlSheet.Paste _
Destination:=xlSheet.Range(Cells(2, 2), Cells(1 + .RowSel, 1 + .ColSel))
の部分で、Cells(2, 2)とCells(1 + .RowSel, 1 + .ColSel)の
CellsにxlSheetが無い為、無宣言参照(スミマセン、造語です)になってるかと。
xlSheet.Cells〜
にする事で残らなくなると思われます。
簡単なサンプルを作って確認した範囲ではメモリに残らなくなりましたので。

※折角ですから、こちらのHPの『Excel & Word関係』にある
 「VBからExcel及びWordを操作する時の注意事項」の5番辺りを
 参考にさせていただいたら如何でしょう?詳しく解説されていますから。

No.2904 VBからエクセルに日にちを貼り付ける  投稿者:匿名 [01/10/10(水)15:13分]

VB初心者なので宜しくお願いします。

今、読んできたデータをエクセルに貼り付けているのですが、今日の日付をどうやって
書けばいいのかわかりません。あと、エクセルのページ 1/? を好きなところに
貼り付けるには、どうすればいいのかも教えてください。お願いします。

No.2905 RE:VBからエクセルに日にちを貼り付ける    投稿者:匿名 [01/10/10(水)16:48分]

今日の日付けの書き込みとは、

dim ObjXl as Object

set ObjXl = CreateNew ("Excel.Appricarion)
With ObjXl
.WorkSheet.Add
.WorkSheets("Sheet1").cells(1,1).Value = now()
end with
でいいですか?

No.2906 VBからのエクセル呼び出しについて。  投稿者:みちる [01/10/10(水)17:39分]

いつも、参考にさせてもらっています。


質問は、VBからエクセルを呼び出すんですけど
その際に、エクセルは既に、テンプレートのように、固定の枠が (表みたいなもの)が出来ていて
それを呼び出して、指定の位置に、文字を入れるようにしたいのです。

その際に、テンプレートを何度も繰り返してコピーして使いたいのです。
一枚のシートに、縦に、一番上のテンプレートをコピーして、指定数だけ
表が出来ていて、そこに値をはめ込んでゆきたい。。という事がしたいんです。
例えば、VB側で"5"と指定されたら、エクセルで既に作成されている表のテンプレートを
一番上のをこぴーして、五つ出来あがるようにしたい。

やり方が解りません。
色々、調べてみましたが、どうも解りません。
よきアドバイスをお願いします。

No.2908 re:VBからのエクセル呼び出しについて  投稿者:匿名 [01/10/10(水)18:13分]

エクセルの”シートの移動、コピー”コマンドをマクロに保存して、

そのコードを流用したら?

No.2909 テンプレのコピー  投稿者:匿名 [01/10/10(水)18:22分]

dim SheetDay as integer


Set Org_Sheet = XlObj.Worksheets("Origin") 'テンプレートを指定。
Set NewWorkbook = XlObjWorkbooks.Add ’コピー先(新しいブック)

一ヶ月分を一つのブック。(一日分1シート)
'
For SheetDay = 32 To 1 Step -1
Org_Sheet.Name = Trim(Str(SheetDay))
Org_Sheet.Copy after:=NewWorkbook.Worksheets(1)
Next

No.2954 エクセルの指定したシートを開くには  投稿者:サエキング [01/10/18(木)13:16分]


はじめまして、VB初心者のサエキングです。

このページのExcel&Word関係のページをみてエクセルの開きかたは
分かりましたが、指定したシート(例Sheet2)を開くにはどのように
したらよいでしょうか?

On Error Resume Next

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
' 変数にオブジェクトの参照を代入します。Add メソッドを使って 新規 workbook
' と worksheet オブジェクトを作成します。
Set xlApp = New Excel.Application
'こちらでも可(どちらがいいかは解かりません)
'Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("D:\エクセル97\test.xls")
Set xlSheet = xlBook.Worksheets("Sheet1") '最初のシートに書き込み

()の部分をSheet2に変更するだけでは駄目ですか?


No.2955 RE:エクセルの指定したシートを開くには    投稿者:NAO★ [01/10/18(木)13:34分]

Sheet2の2を半角の2にすればいいような気がします → "Sheet2"

はずしていたらごめんなさい。

No.2968 RE:エクセルの指定したシートを開くには  投稿者:星野 [01/10/20(土)23:16分]

エクセルの指定したシート(例:"Sheet2")を開くには、

次のようにActivateメソッドを使用します。

Set xlSheet = xlBook.Worksheets("Sheet2")
xlSheet.Activate

尚、エクセルの操作については、エクセルを直接開いて
「ツール」−「マクロ」メニューより「新しいマクロの記録」を選択してから
エクセルの操作を行った後で、「記録終了」して「マクロ」メニューの
「Visual Basic Editor」のVBAソースを参考にすると良いと思います。

No.3021 エクセルの形式をCSVにして保存  投稿者:VB太郎 [01/10/30(火)14:49分]

VBからエクセルファイルを開いてCSV形式で保存すると

日付 yyyy/mm/ddがmm/dd/yyyyになってしまいます
CSV形式でもyyyy/mm/ddで保存する方法があれば
どなたか教えて下さい、ちなみにソースは以下のようにしてます。

Dim wExcel As Excel.Application
Dim wBook As Excel.Workbook
Dim wPath As String
Dim wCsvPath As String

wPath=txtXlsPath.Text
wCsvPath=txtCsvPath.Text

Set wExcel = CreateObject("Excel.Application")
Set wBook = wExcel.Workbooks.Open(wPath)

wExcel.ActiveWorkbook.SaveAs filename:= _
wCsvPath, FileFormat:=xlCSV, _
CreateBackup:=False

No.3023 RE:エクセルの形式をCSVにして保存  投稿者:花ちゃん [01/10/30(火)16:52分]

ダイアログボックスを表示して保存すればOKです。

日付を文字列に変えてから保存すればOKのようです。

Excelの日付形式から直接CSVに変換してしまうのですかね?

No.3027 RE:エクセルの形式をCSVにして保存    投稿者:NAO★ [01/10/30(火)21:02分]

>「日付を文字列に変えてから保存すればOKのようです。」


こちらをご覧ください
http://www.microsoft.com/JAPAN/support/kb/articles/J031/0/97.htm

No.3031 win2000でvbのexeからexcelを起動したときのエラー  投稿者:よし [01/10/30(火)22:41分]

おはつに書き込みます。


Windows 2000 pro で VB6.0 SP3で作成したexeを稼動させています。

そのexeからExcel 2000を起動させようとすると
「48:DLL読み込み時のエラーです」
と出てしまいます。

エラーの発生個所は 1 の個所で発生しています。
1: Set xlApp = New Excel.Application ← Dim xlApp As Excel.Application として定義
2:Set xlbook = xlApp.Workbooks.Add(pass)

なぜそこでエラーが出るのか分かる方お助けください。

ちなみに、
1:Windows 2000 pro でも、動くものもある。
2:NT4.0 workstation では問題なく動いていた。
3:ディストリビューションウィザードなどインストーラーでインストールはしていない。
(てか、事情が合ってadmin権限を使用できなかった)
4:サードパーティのDLLなどに関しては regsrv32でコマンドで登録した。
です。

No.3033 RE:win2000でvbのexeからexcelを起動したときのエラー    投稿者:Rabbit [01/10/31(水)11:36分]

1:Windows 2000 pro でも、動くものもある。

2:NT4.0 workstation では問題なく動いていた。
3:ディストリビューションウィザードなどインストーラーでインストールはしていない。
(てか、事情が合ってadmin権限を使用できなかった)
4:サードパーティのDLLなどに関しては regsrv32でコマンドで登録した。

エラーの発生場所から、エラーが出るPCにはエクセル(MSO9.DLL)が無いのではありませんか?

No.3062 VBによりEXCELを操作したい 投稿者:ぺんた [01/11/04(日)15:54分]

VBによりEXCELを操作したいのですが。

あるEXCELのシート内に
かき、12
バナナ、4
りんご、2
みかん、3
というデータが入っていたとして
数字を降順にソートすると果物名の行も数字と相対的にソート
できるようにしたいのですが。可能なのでしょうか?

No.3082 RE:VBによりEXCELを操作したい 投稿者:花ちゃん [01/11/07(水)11:50分]

Excel 単独で使用してソートした時と同じようにVBからもソートできます。

ここのHPのExcel&Word関係を見て下さい。

No.3079 エクセルシート名が不明の時  投稿者:トラ(匿名) [01/11/07(水)10:57分]

エクセルのシート名が不明の時どうやって名前を取り出したらいいですか?

No.3081 RE:エクセルシート名が不明の時  投稿者:花ちゃん [01/11/07(水)11:44分]

過去のログ No.1704番を参考にして下さい。

No.1704 RE:エクセルのシート名  投稿者:花ちゃん [00/12/05(火)17:09分]

  以下を試して下さい。


'エクセルのシート名の取得
For i = 1 To objExcelApp.Worksheets.Count
Debug.Print objExcelApp.Worksheets(i).Name
Next i

No.3152 エクセルのデータを  投稿者:ぺんた [01/11/14(水)14:24分]

VBを使ってエクセル内のデータをテキストファイルに読み出す方法を教えていただきたいのですが。お願いします。

No.3153 RE:エクセルのデータを  投稿者:花ちゃん [01/11/14(水)15:21分]

ここのHPのExcel&Word関係はごらんになられましたか?

まだでしたら、一度見て解らなければ、又質問願います。

No.3486 Excelの使用について  投稿者:kuro [01/12/20(木)23:54分]

はじめましてkuroです

VB6.0からExcel2000を利用して印刷したいのですが

Dim xlApp As Excel.Application

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
xlApp.Workbooks.Open App.Path & "\test.xlt"
xlApp.Cells(2, 4).Value = Text1.Text
xlApp.Cells(3, 4).Value = Text2.Text
xlApp.Worksheets("sheet1").PrintOut
Set xlApp = Nothing

これだと印刷してくれるのですが、メモリに残っているせいかExcelを立ち上げたとき
書き込んだ内容が表示されてしまいます。
Set xlApp = Nothing
の前の行にxlApp.Quiteを加えると”保存しますかメッセージボックスが出てしまいます"
xlApp.Quiteの前に保存をせずに終了をできる関数はあるのでしょうか。
それとも書き方が悪いのでしょうか。

No.3487 RE:Excelの使用について  投稿者:花ちゃん [01/12/21(金)9:28分]

xlApp.DisplayAlerts = False

xlApp.Quite
Set xlApp = Nothing

これを一度試して見て下さい。
又、ここのHPのExcel & Word 関係も見て下さい。

No.3510 Excelに罫線を引く方法  投稿者:匿名 [01/12/25(火)14:06分]

まずExcelにデータを送り、Excelを開いたときに空白のセルの中央に罫線を

引いた状態にしたいのですがそのような事は可能ですか?(出来れば罫線は
太い線で描画したいです。)

私が考えたのは
Set ws = wb.Worksheets("Sheet1")

ws.Cells(1, 1).Value = ""

ダブルクォーテーションの中にプログラムを設定すればいいのでしょうか?
他に何か良い方法があれば教えてください。

No.3516 RE:Excelに罫線を引く方法  投稿者:花ちゃん [01/12/25(火)18:01分]

ここにも書いていますが、Excel 単独でできることは、VBからもほぼ出来ます。

やり方が解らなければ、Excel上で実施し、それをマクロに記録して
見てみれば解ります。
お尋ねの罫線をセルの中央に引くには、オートシェイプを使えば一応引けます。

xlSheet.Shapes.AddLine(0.75, 6.75, 54, 6.75).Select
xlSheet.Shapes.Range(1).Line.Weight = 3

No.3622 エクセルシートに罫線を付けたいのですが  投稿者:TADO [02/1/13(日)23:27分]

mdb を読んで xls を作成するプログラムを作っています。

「Excel & Word関係」を見させていただき、なんとか作れました。

罫線を付けたいのですが、行数とカラム数が可変なんです。

xlSheet.Range("A1:F6").Borders.LineStyle = xlContinuous '実線

上記の Range の所を、どのようにしたらよいのでしょう?

No.3623 RE:エクセルシートに罫線を付けたいのですが  投稿者:花ちゃん [02/1/14(月)4:25分]

>罫線を付けたいのですが、行数とカラム数が可変なんです。


可変とは?? どういった意味の可変なのでしょうか?
罫線を付けたい位置が解るなら、1本づつ範囲を指定して引けばどうでしょうか

xlSheet.Range("A1:F1").Borders(xlEdgeBottom).LineStyle = xlDouble
xlSheet.Range("B1:B6").Borders(xlEdgeLeft).LineStyle = xlDouble

No.3624 エクセルシートに罫線を付けられました。  投稿者:TADO [02/1/14(月)12:08分]

>可変とは?? どういった意味の可変なのでしょうか?


行数とカラム数が mdb(というよりテーブル) によって異なるため可変というつもりでした。
分かりずらくてすみません。
とりあえず以下の関数を作成して、できるようになりました。

Private Function Col2A$(Col As Long) 'カラム数を受け取り、"A"〜"ZZ"を返す
Dim i As Integer

i = Int((Col - 1) / 26)
Col2A = IIf(Col > 26, Chr$(64 + i), "")

i = Col - 26 * i
Col2A = Col2A & Chr$(64 + i)
End Function

つぎのように使用します。

xlSheet.Range("A1:" & Col2A$(xCol) & xRow).Borders.LineStyle = xlContinuous '実線

VBに不慣れなため、このHPに大変お世話になっております。
今後ともよろしくお願いします。

No.3753 エクセルシートを一発クリアする方法  投稿者:H.S [02/1/29(火)5:38分]

VBで「csvファイルを読み、エクセルシートに埋め込み」たい。

この時エクセルシートはすでに見出し、データがすでにセットされて
いる場合があり、見出し部分を生かして、データ部分をクリアしたい。
エクセルで、「範囲指定し、削除を実行し」そのマクロを参照したが
それをどうVBに反映したらいいかさっぱり理解できないでいます。
その部分の具体例を教えてください。
今はセルの一つずつをぐるぐる回しています。一発でできたら、
コードもすっきりするし、「速いような」気がしてなりません。
余り速くならないのならその旨のご忠告を、、、お願いします。

No.3757 RE:エクセルシートを一発クリアする方法  投稿者:花ちゃん [02/1/29(火)10:35分]

>この時エクセルシートはすでに見出し、データがすでにセットされて

>いる場合があり、見出し部分を生かして、データ部分をクリアしたい。

このデータ部分がどのようになっているのかを書いてもらわないと判りませんが?
範囲が下記のように指定できるのならば一発でクリアできますが
データ部分のセルが飛び飛びならば無理ですが、
xlSheet.Range("A2:F5").Clear

その他入力範囲を調べる方法
'Activateなセル("D5")があるActivateセル領域を選択します
xlApp.ActiveCell.CurrentRegion.Select
'シート全体で使用した事のあるセル範囲を含む最小短形を選択
xlSheet.UsedRange.Select

No.4005 VBからEXCELへデータ表示のさいの質問(改定)  投稿者:松 [02/3/04(月)20:11分]

花ちゃんさんありがとうございます。

質問をこう言う場に出すのは初めてで質問の書き方などが
よくわからづ途方にくれていました。

VBからエクセルへデータを吐き出す時、列を表示、非表示できる+−のボタンを各列に
つけたいのですがどういう方法があるでしょうか?
エクセルのシートで直接行う時には、列を選択して
メニューバー→データ→グループとアウトラインの設定(G)→グループ化で
できるのですがVBのコードでの表示方法が分りません。
わかりづらい説明で本当に申し訳ありませんがとても困っています。
どなたかご存知の方がいらっしゃいましたら宜しくお願い致します。

No.4006 RE:VBからEXCELへデータ表示のさいの質問  投稿者:花ちゃん [02/3/04(月)23:30分]

前もってアウトラインの設定をした用紙にデータを書き出したらどうですか?

又、Excelのマクロで記録して、それをみれば設定方法が解りますよ。
そのまま使える場合もありますが、少し手を加えれば大体OKかと思います。

No.4019 アクセスからエクセルファイルの読込み  投稿者:はるこ [02/3/06(水)19:42分]

Excel& Word関係の

ExcelをVisual Basicから色々と操作する (012)
を参考にして
アクセスからエクセルデータの読込をおこなったのですが
エクセルデータ(3シートで1500件ぐらい)が多いと処理中やQUIT時にアクセスが落ちてしまいます
QUITを省略すると落ちることはないのですが
エクセルファイルの使用ができなくなります
エクセルファイルからデータを読込み、読込み終了後もエクセルファイルを使用できる方法はないでしょうか?
ご存知でしたら是非教えてください

エクセルデータの件数が多くない場合は正常に終了します

No.4021 RE:アクセスからエクセルファイルの読込み  投稿者:花ちゃん [02/3/06(水)23:22分]

詳しい状況が解りませんが、下記に該当しないでしょうか?


http://www.microsoft.com/japan/support/kb/articles/J049/6/06.asp

No.4213 「エクセルを手動で終了する場合」に関する質問  投稿者:かる [02/4/01(月)13:16分]

初めまして、かると申します。

いつも参考にさせて頂いております。

過去のログに有る、「エクセルを手動で終了する場合」と、No2726に関連した質問が有ります。
下記のことについてアドバイスお願いできますでしょうか。

[やりたい事]
Excelを新規に立ち上げて値代入の操作を行い、表示させたままプログラムは終了する。
表示されたExcelは手動で終了させる。

[問題点]
Excelは正常に起動する。
しかし手動で終了する際、アプリケーションの順で閉じた場合は問題なく終了するが、
ブック、アプリケーションの順で閉じた場合には
「"0x300a1917"の命令が"0x01500020"のメモリを参照しました。メモリが"read"になることはできませんでした。」
のエラーメッセージが出る。

[プログラム]
----------------------------------------
On Error GoTo Err_End
Dim myXlApp As Excel.Application
Dim myXlBook As Excel.Workbook
Dim myXlSheet As Excel.Worksheet

'初期設定
Set myXlApp = New Excel.Application
Set myXlBook = myXlApp.Workbooks.Add
Set myXlSheet = myXlBook.Worksheets.Add

myXlApp.WindowState = xlMaximized

'エクセルの表示
myXlApp.Visible = True

'データをエクセルのセルに代入
With myXlSheet
.Cells.Select
myXlApp.Selection.NumberFormatLocal = "@"
.Cells(1, 1).Select

For i = 0 To UBound(arrayData, 1)
For j = 0 To UBound(arrayData, 2)
.Cells(i + 1, j + 1).Value = arrayData(i, j)
Next j
Next i
End With


'後始末
Set myXlSheet = Nothing
Set myXlBook = Nothing
Set myXlApp = Nothing
----------------------------------------

オブジェクトを解放しているつもりですが、なにが原因でそうなるのか分かりません。
過去のログNo2726で、同様の質問をされている方が居られましたが、回答にあたるログが無かったように思います。

なにか良くない処理があるようでしたら、アドバイスお願いします。
宜しくお願いします。

No.4216 RE:「エクセルを手動で終了する場合」に関する質問  投稿者:かる [02/4/01(月)15:05分]

すみません、自己レスします。

解決しました。

-----------------------------------
'初期設定
Set myXlApp = New Excel.Application
Set myXlBook = myXlApp.Workbooks.Add
Set myXlSheet = myXlBook.Worksheets.Add

myXlApp.WindowState = xlMaximized

'エクセルの表示
myXlApp.Visible = True
------------------------------------

となっていたところを、下記のようにすると解決しました。

------------------------------------
Set myXlApp = New Excel.Application

With myXlApp
'エクセルの表示
.Visible = True
.Workbooks.Add
.WindowState = xlMaximized

------------------------------------
「セルへの代入処理」の前に.visible=trueにしておけば大丈夫だと思っていましたが、
.Workbooks.Addの前で.visible=trueにする必要があったようです。

「VBからExcel及びWordを操作する時の注意事項 」は読んでいたのですが、若干勘違いをしていたようです。
すみませんでした。

No.4219 RE:「エクセルを手動で終了する場合」に関する質問  投稿者:みゃお [02/4/02(火)16:15分]

久しぶりに見に来ました。

GetObject後のエクセルの手動終了の件で、某所で新しい情報を仕入れましたので、書いておきます。

書き込み時にEXCEL本体を表示していない場合、後で表示してからブックのみを終了させようとすると
EXCELもろとも落ちてしまいますが、

「後で表示」後
xlApp.Workbooks.Add して
xlApp.ActiveWorkbook.Close False します。
ダミーでファイルを開いてそのまま閉じるわけです。
こうすると何故か上記現象が起きないのです。お試し下さい。

No.4381 VBからEXCEL表示  投稿者:みや [02/4/15(月)15:12分]

はじめて書き込みます。

No.4203 再びVBからEXCELを表示に関しての質問です。(投稿者 松)
と同様にVBの画面を閉じずにエクセルのシートを保存先から手動で開こうとすると開けません。
花ちゃんのサンプル(No.4205)を実行してみるとできたのですが、
セルに色をつけるとダメでした。
(罫線やセルの結合などはOKでした)

以下↓はNo.4205を元にしたソースです。
(色の所をコメントにするとうまくいきます。)

Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add

'xlApp.Visible = True
xlSheet.Range("A1:B1").MergeCells = True
xlSheet.Cells(1, 1).Value = "15"
xlSheet.Range("A2:B2").MergeCells = True
xlSheet.Cells(2, 1).Value = "15"
xlSheet.Range("A3:B3").MergeCells = True
xlSheet.Cells(3, 1).Formula = "=A1+A2"
xlSheet.Range("A1:B3").Borders.LineStyle = xlContinuous '実線
xlSheet.Range(Cells(1, 1), Cells(3, 3)).Interior.Color = RGB(128, 255, 255) 'セルのバックカラー

xlSheet.SaveAs "e:\Temp.xls"
xlApp.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub

No.4385 RE: VBからEXCEL表示  投稿者:みゃお [02/4/15(月)16:30分]

>xlSheet.Range(Cells(1, 1), Cells(3, 3)).Interior.Color = RGB(128, 255, 255) 'セルのバックカラー

この行で、Cells が xlSheet.Cells となっていないために、EXCELが終わりきらないようですね。
xlSheet.Range("A1:C3") としておいてもエラーにならなかったと思いますが。


No.4622 グラフの参照先となる表の範囲指定について  投稿者:匿名 [02/5/08(水)14:55分]

本サイトの、Excel&Word関係にある「Excel にデータを送りグラフを表示する」を参考に、

VBからエクセルシートにグラフを表示させることができました。(大変参考になりました)
そこで、新たな問題点が出てきたのですが、グラフの参照先となる表の範囲指定において、
下記のような指定をするにはどうすればよいのでしょうか?

※例えば、セル("A1:A6") と セル("D1:D6") のように項目名とデータ領域が離れている場合
↓A1形式で範囲指定するとうまくいくのですが、
  .SetSourceData xlSheet.Range("A1:A6,D1:D6"), xlColumns

↓こんな感じでセルを指定しても、うまくいきません。
  .SetSourceData xlSheet.Range(Cell(1,1), Cell(1,6)), xlColumns
  .SetSourceData xlSheet.Range(Cell(1,4), Cell(6,4)), xlColumns

Range(Cell(X,Y), Cell(XX,YY)) ←この形式では2つの範囲を指定することはできないのでしょうか?
指定方法を教えて下さい。よろしくお願いします。

No.4625 RE:グラフの参照先となる表の範囲指定について  投稿者:花ちゃん [02/5/08(水)19:50分]

範囲指定をA1形式以外で指定したいという事のようですね?


下記のような関数を作っておき

Private Function fChangeA1(x As Long, y As Long) As String
fChangeA1 = Chr$(y + 64) & Trim$(Str$(x))
End Function


範囲指定のところでこのようにすれば
Dim myRange As String
myRange = fChangeA1(1, 1) & ":" & fChangeA1(6, 1) & "," & _
fChangeA1(1, 4) & ":" & fChangeA1(6, 4)

.SetSourceData xlSheet.Range(myRange), xlColumns

一応これで表示されます。
後はデータをコピーして範囲指定が2箇所ですむような方法しか思いうかびませんでした。
それなら
.SetSourceData xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(6, 6)), xlColumns
これでいけるのですが

No.4631 RE:RE:グラフの参照先となる表の範囲指定  投稿者:匿名 [02/5/09(木)10:46分]

いろいろと調べておりましたら、複数の領域を指定するためのUnionというメソッドが存在することがわかり、

これを用いることで、実現することができました。具体的には下記のような感じで指定しました。

  .SetSourceData Union(xlSheet.Range(Cell(1,1), Cell(1,6)), _
xlSheet.Range(Cell(1,4), Cell(6,4)) ), xlColumns

グラフの参照先となる表に限らず、複数の領域を指定したい場合に使えるようです。
(3つ以上の領域でも指定可能)

No.5047 エクセルの編集モードをコマンドモードに。  投稿者:momizi [02/6/19(水)15:33分]

エクセルの編集モードをコマンドモードにVBでやりたいのですが・・・

どうすればいいのでしょうか?

・・・わかりません。
皆さん、教えてください。
お願いします。

No.5064 RE:エクセルの編集モードをコマンドモードに。  投稿者:みゃお [02/6/21(金)10:51分]

残念ながら、編集モードのときにVBAは動きません。

No.5059 VBからエクセルブックのシートコピーに失敗する  投稿者:Hypnosis [02/6/20(木)19:00分]

はじめまして、Hypnosisと申します。


タイトルの通りなんですが、
1.VBでGetObjectを用いてエクセルブックをオープン。
 Dim WBook As Excel.Workbook 'エクセルブック
 Dim WSheet As Worksheet 'エクセルシート

 Set WBook = GetObject(BookFName)

2.ワークシートをコピー。
 WBook.Worksheets("シート1").Copy , WBook.Worksheets(WBook.Worksheets.Count)

上記だと「Copyメソッドに失敗しました」とメッセージが表示されてしまいます。
原因がさっぱり見当もつきません。
GetObjectを用いない場合はうまくいったような覚えがあるのですが。
(諸事情によりGetObjectを用いなければならないのです。)

些細なことでも構いませんので、なにかご存知の方よろしくおねがいします

No.5063 RE:VBからエクセルブックのシートコピーに失敗する  投稿者:みゃお [02/6/21(金)10:43分]

> WBook.Worksheets("シート1").Copy , WBook.Worksheets(WBook.Worksheets.Count)

>上記だと「Copyメソッドに失敗しました」とメッセージが表示されてしまいます。

Copy のあとのカンマは必要ありません。

あと、
> Dim WSheet As Worksheet 'エクセルシート
これも、EXCEL.Worksheetとしたほうがいいのでは。(なんとなく)

No.5221 vbでエクセルのグラフ操作  投稿者:sasaki [02/7/09(火)17:55分]


vbでエクセルのグラフを操作します。

すでに表示されているグラフの領域を変更したいのですがエラーが出ます。
マクロで調べたコードの間違いを教えてください。

objbook.worksheets(1).ChartObjects("グラフ 2").SetSourceData source:=Sheets("1").Range("a1:c3")

No.5222 RE:vbでエクセルのグラフ操作  投稿者:花ちゃん [02/7/09(火)18:10分]

ここのExcel&Word関係の [VBからExcel及びWordを操作する時の注意事項(最初に必ずお読み下さい)]

を見て下さい

No.5244 エクセルファイルを読み込む  投稿者:アンパンマン [02/7/12(金)12:14分]

こんにちは、お久しぶりです。


いきなりですが、いくつかある、エクセルファイルを一つのテキストファイルにまとめたいのですが、
Open ファイル名 For Input as フリーファイル
Open ファイル名 For Output as フリーファイル
では、出来ないのでしょうか?

エクセルの一部のセルだけでいいので、
Dim InData as String
dim InD() as String

Do Until EOF(nFile)
Line Input #nFile, InData
InD=Split(InData,"?",-1)
Print #nFile, InD(1) & " " & InD(3)
Loop

上記の様に書きましたが、?の部分をどうしたらいいか判りません。
CSVでは全然できるのですが・・・。

やはりエクセルファイルは、普通にエクセルファイルを開いてやるべきなのでしょうか?
よろしくお願いします。

No.5245 RE:エクセルファイルを読み込む  投稿者:NAO★ [02/7/12(金)13:28分]

読み込みと書き込みで同じファイル番号(の変数)を使用していますよ。

同時に別のファイルを開く時は別のファイル番号を使用してください。

あと、Excel のファイルはバイナリなので
> Line Input #nFile, InData
ではダメです。
このサイトの「VBからエクセルを操作する(その1)」
あたりを参考にして読み込んだデータをテキストファイルに書き込むように
してください。

No.5261 XLSマクロで質問  投稿者:XLS [02/7/15(月)20:48分]

みなさんこんばんわ。


いま取込んだエクセルファイルのA列B列が空白だったらその行をデリートするマクロを
書いているのですが、うまく行きません。
Do While blank_cnt < 100 'Cells(cnt, 2) <> "" 途中空白行あり

If Cells(cnt, 1) <> "" Then
now_id = Cells(cnt, 1)
Else
Cells(cnt, 1) = now_id
End If

'途中空白行
If Cells(cnt, 1) = "" and Cells(cnt, 2) = "" Then
Rows(cnt).Delete Shift:=xlShiftUp
blank_cnt = blank_cnt + 1
Else
blank_cnt = 0
End If

cnt = cnt + 1

Loop

としています。
確実に空白で消す場合どうすればいいでしょうか?

No.5263 Re: XLSマクロで質問  投稿者:とろ [02/7/15(月)21:42分]

未入力のセルは、文字列なのか数値なのかが未定義で、

VB/VBA でいうところの Empty という
(空の文字列や数値のゼロに相当する)
特殊な値が入っているようなものです。

それなので、
Cells(cnt, 1) = ""
とはせず、
IsEmpty(Cells(cnt, 1)) = True
のようにしましょう。

No.5280 エクセルデータをCSV形式で保存  投稿者:匿名 [02/7/17(水)10:01分]

初めまして。

VBを始めてまだ日の浅い超初心者です。
上手く説明出来ないかもしれませんが、誰かよきアドバイス願います。


既存のエクセルデータ(複数シートあり)から、一つのシートデータだけを
抜き出して(シート名は固定)、CSV形式で保存したいと考えています。
※一つのシートのみ、CSV形式で保存したい。
VBで、このような方法が出来るのでしょうか?
また、これをするには、どのようなプログラムを作ったらいいのでしょうか?
誰か分かる人がいたら教えて下さい。
宜しくお願いします。
では

No.5281 RE:エクセルデータをCSV形式で保存  投稿者:花ちゃん [02/7/17(水)10:10分]

それなら、VBからExcelのそのデータを読み込んで、VBでCSV形式で保存して下さい。


VBとエクセル間でデータのやりとりをする や ファイル操作関係 を見て頂ければ
できるかと思います。

No.5286 シートを消す時メッセージボックスを出さない  投稿者:JYUU [02/7/17(水)16:02分]

新しいシート(Sheet1)を追加した後、既存のシートを消す時に

メッセージボックスが表示されて「OK」を押下しないといけません。
絶対消すシートの場合、メッセージボックスを出さずにシートを消したい
のですが方法があるのでしょうか?
よろしくお願いします。

<今は下記の様になってます。>
Sheets("消すシート").Select
Sheets.Add
Sheets("消すシート").Select
ActiveWindow.SelectedSheets.Delete '/*Msgboxが表示されてしまう*/

No.5287 RE:シートを消す時メッセージボックスを出さない  投稿者:花ちゃん [02/7/17(水)16:27分]

削除処理の前に次の一文を入れて見て下さい。


xlApp.DisplayAlerts = False

 xlApp は参照したオブジェクト名です。

No.5304 Excelを開かずにデータを書き込み  投稿者:沙希 [02/7/18(木)15:37分]

はじめまして。


VB上でExcelを操作したいのですが、操作の際に、Excelを開かずにデータを書き込みたいんです。
以下にソースを記載します。これはExcelが開いてデータを書き込む感じです。

' Excelのインスタンス作成
Set xlApp = CreateObject("Excel.Application")
' Excelの表示有無
xlApp.Visible = True
' マクロの警告やメッセージを表示しないように設定
xlApp.DisplayAlerts = False
'ファイル名を設定
  sFileName = "TEST.XLS"

Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & sFileName)
      #書き込み作業#

xlApp.Application.Visible = False
xlBook.Close SaveChanges:=True

xlApp.Quit
・・・

プログラム初心者でわからない事だらけで困っています(T-T)
分かる方、ご教授よろしくお願いします。

No.5308 RE:Excelを開かずにデータを書き込み    投稿者:Say [02/7/18(木)20:39分]


制限はありますが・・・。 たとえばこんなかんじ
(C直下にTest1.xlsを用意し、Sheet1に

| A | B |
----------------
1 | ID | NAME |
2 | 1 | AAA |
3 | 2 | BBB |
4 | 3 | CCC |

というデータを入れておいてください。)

Option Explicit

Private Sub Command1_Click()
Dim dbs As DAO.Database
Dim strSQL As String
Set dbs = Workspaces(0).OpenDatabase("c:\Test1.xls", _
False, False, "Excel 8.0;")
strSQL = "INSERT INTO [Sheet1$] ([ID],[NAME]) VALUES(4,""DDDD"")"
dbs.Execute strSQL
dbs.Close
Set dbs = Nothing
MsgBox "end"
End Sub

No.5305 VBからExcelのマクロを実行  投稿者:kan [02/7/18(木)16:26分]

VBから既存のExcelファイルを開いて、マクロを実行させたいのですが

既存ファイルを開くのはできるのですが、マクロを実行できません。
VBからExcelのマクロを実行させるにはどうしたらいいのでしょうか?

No.5306 Re: VBからExcelのマクロを実行  投稿者:とろ [02/7/18(木)16:42分]

> VBからExcelのマクロを実行させるにはどうしたらいいのでしょうか?


Excel.Application オブジェクトの Run メソッド。

No.5340 ファイルをEXCELで読取専用で開きたい  投稿者:Nobu [02/7/23(火)17:25分]

CSVファイルをEXCELで開けさせるときに、読み取り専用で開くようにしたいのですが、どうすれば良いのでしょうか。

初歩的な事なのかもしれませんが、当方は解決できず悩んでいます。御教授宜しくお願いします。

詳細:データベースを複数の小さいデータベース(CSVファイル)に分散するプログラムを作っているのですが、その実行途中に、作業内容を確認するため、作成した(分散させた)CSVファイルをEXCELで表示させたいと思い、下記のようなプログラムを付け足しました。
とりあえずCSVファイルのデータをEXCELで表示させることは出来ましたが、今のままでは
1.表示中にCSVファイルにデータの追加保存をする場合がある。
2.改訂した上で上書き保存が出来てしまう。
と、いう問題があるので、読み取り専用として開くことが出来ないかと考えています。
なお、EXCELで表示させることは必須条件(部分印刷したり作業するため)ですが、
上記の2つの問題がクリアできれば"読み取り専用"以外の方法でも構いません。

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
 Set xlApp = New Excel.Application
 Set xlBook = xlApp.Workbooks.Open("D:\EraFile1.csv")
 Set xlSheet = xlBook.Worksheets(1)
  xlSheet.Range("E:E").NumberFormat = "0"
  xlApp.Visible = True
 Set xlSheet = Nothing
 Set xlBook = Nothing
 Set xlApp = Nothing
(このプログラム自体が、おかしいかも知れませんが…)

No.5341 RE:ファイルをEXCELで読取専用で開きたい  投稿者:花ちゃん [02/7/23(火)18:01分]

Set xlBook = xlApp.Workbooks.Open("D:\EraFile1.csv",,True)

これでいいかと

詳しくはヘルプ(VBAXL9.CHM)で Open メソッド を調べて下さい。


過去のログ No.1 〜  No.5350(02.07.24) 迄の分から Excel & Word 関係の質問で
回答があったものを集計しております。





2002/07/29