ADODB.Streamを使って新規にファイルを作成することは可能ですか?
---------------------------------------------
Sub test1()
Dim n As Long
n = FreeFile
Open "C:\sample.html" For Output As #n
Print #n, "テキスト"
Close #n
End Sub
これで、新規にhtmlファイルを作れるのですが
---------------------------------------------
Sub test2()
Dim st As Object
Dim Sample As String
Set st = CreateObject("ADODB.Stream")
オブジェクトに保存するデータの種類を文字列型に指定する
st.Type = adTypeText
文字列型のオブジェクトの文字コードを指定する
st.Charset = "UTF-8"
st.Open 'オブジェクトのインスタンスを作成
st.WriteText Sample, adWriteLine 'ココでエラー
オブジェクトの内容をファイルに保存
st.SaveToFile ("c:\sample.html"), adSaveCreateOverWrite
オブジェクトを閉じる
st.Close
メモリからオブジェクトを削除する
Set st = Nothing
End Sub
---------------------------------------------
この方式で新規にファイルを生成して保存することは可能ですか?
該当部分でエラーが発生します。
No.1ベストアンサー
- 回答日時:
Sub test2()
Dim st As Object
Dim Sample As String
Set st = CreateObject("ADODB.Stream")
Sample = "abc" '変数に値のセット
'オブジェクトに保存するデータの種類を文字列型に指定する
st.Type = adTypeText
'文字列型のオブジェクトの文字コードを指定する
st.Charset = "UTF-8"
st.Open 'オブジェクトのインスタンスを作成
st.WriteText Sample, adWriteLine 'ココでエラー
'オブジェクトの内容をファイルに保存 ↓新規ファイル
st.SaveToFile ("e:\sample.html"), adSaveCreateNotExist '←こっち 'adSaveCreateOverWrite
'オブジェクトを閉じる
st.Close
'メモリからオブジェクトを削除する
Set st = Nothing
End Sub
という事?
No.3
- 回答日時:
No2で、
>いずれにしても数値(定数)を設定する必要があります。
と書きましたが、
adTypeText
adWriteLine
adSaveCreateOverWrite
などが変数としか認識されないならば、ということです。
No.2
- 回答日時:
以下のコードのように
adTypeTextの値を2、adSaveCreateOverWriteの値を2、というように
直接設定してもいいのですが、あるいはあらかじめ
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
Const adWriteLine = 1
のように数値を設定しておいて、おくのも方法ですが、
いずれにしても数値(定数)を設定する必要があります。
Dim st As Object
Dim Sample As String
Set st = CreateObject("ADODB.Stream")
Sample = "あいうえお"
'オブジェクトに保存するデータの種類を文字列型に指定する
st.Type = 2
'文字列型のオブジェクトの文字コードを指定する
st.Charset = "UTF-8"
st.Open 'オブジェクトのインスタンスを作成
st.WriteText Sample, 1
'オブジェクトの内容をファイルに保存
st.SaveToFile ("c:\sample.html"), 2
'オブジェクトを閉じる
st.Close
'メモリからオブジェクトを削除する
Set st = Nothing
一応、数値(定数)を設定すると動きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) ワークブック内すべて検索 2 2022/12/20 20:13
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームのインポート...
-
Excel VBAでマウスの左クリック...
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
PowerpointVBAで指定のShapeオ...
-
エクセル2000VBAでオブジェクト...
-
サブルーチンにオブジェクト名...
-
VB.NET Image型データをファイ...
-
VB6.0同一プログラム上で複数の...
-
ワードでの操作方法について、...
-
VBAでフォームのコントロールの...
-
VB6にて文字型変数の内容をオブ...
-
VBからCrystalReportsへSQL文を...
-
Bitmap.GetPixelより高速なもの
-
もしかして
-
エクセルで、日付を入力すると...
-
「ご処理進めて頂きますようお...
-
リストボックスの選択解除
-
VBAでループ内で使う変数名を可...
-
ImageMagickでgif画像の一部が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
Excel VBAでマウスの左クリック...
-
文字列で小数点以下の0を削除し...
-
【エクセルのマクロ】クリップ...
-
エクセルVBAでセル番地を指定し...
-
Excel2007 でのチェックボック...
-
Accessのフォーム上にエクセル...
-
日本語の文字化けを直す方法
-
エクセルのデータをwebフォーム...
-
現在アクティブになっているオ...
-
PowerpointVBAで指定のShapeオ...
-
コードでオブジェクトを最前面に
-
【エクセル】複数のTextBoxに共...
-
Imageコントロールにグラフを表...
-
ユーザーフォームのインポート...
-
Access からオブジェクトとして...
-
構造体の静的な初期化
-
Excel VBA でPictureBoxオブジ...
-
「SHDocVw」の意味
おすすめ情報