
No.2ベストアンサー
- 回答日時:
ズブの素人ですので、見当違いであればお許し下さい。
<単純にテキストを読み込む場合>
Public Function FileReadAll(ByVal FileName As String) As String
On Error GoTo Err_FileReadAll
Dim fso As FileSystemObject
Dim fil As File
Dim txs As TextStream
Set fso = New FileSystemObject
Set fil = fso.GetFile(FileName)
Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault)
FileReadAll = txs.ReadAll
Exit_FileReadAll:
Exit Function
Err_FileReadAll:
MsgBox Err.Description & "(FileReadAll)", vbExclamation, " 関数エラーメッセージ"
Resume Exit_FileReadAll
End Function
Private Sub CommandButton1_Click()
Dim strText As String
strText = FileReadAll("d:\temp\Test.txt")
MsgBox strText
End Sub
これで、コマンドボタンをクリックすると Test.txt の内容をstrTextに代入してMsgBox で表示できます。
リッチテキストボックスのテキストを出力した後にエクセルのコマンドボタンをクリックし、エクセルにstrText を表示すれば、事実上のコピーが成立します。
もちろん、エクセルが開いていない場合に、自動オープンして自動コピーする。
あるいは、エクセルのコマンドボタンを送信側から操作するなど色々のケースがあるでしょう。
まあ、直接にコピーするよりも簡単という訳です。
<複雑な情報の転送>
・元々の情報とエクセルの対応を決める。
・それぞれの情報の再現方法を決める。
・これらを構造体変数に代入する。
・構造体変数を一旦ファイルとして出力する。
・エクセルで構造体変数を呼び込む。
・構造体変数をエクセルに反映する。
コピー情報が単純ではないと判断し<構造体変数化>という手法を提示したものです。
どのような構造体変数を用意すべきかは、質問の範囲では不明です。
例えば、次のような構造体変数の出力とリードには BLoad()、BSave()という関数を使っています。
Private Type MENU
TitleCaption As String * 24 ' トップメニュータイトル
MenuCount As Integer ' メニュー総数
SubItems(5) As Integer ' 各メニューの項目数
MenuNames(5) As String * 16 ' 主メニュー名
' ----+----1----+----2----
LargeIcons(5, 19) As String * 24 ' Icons\Large\xxxxxxxx.ico
SmallIcons(5, 19) As String * 24 ' Icons\Small\xxxxxxxx.ico
IconTexts(5, 19) As String * 12 ' アイコンテキスト
AppTypes(5, 19) As String * 1 ' アプリケーションの種類
AppNames(5, 19) As String * 20 ' アプリケーション名
AppDescs(5, 19) As String * 32 ' アプリケーションの説明
ViewMode As Integer ' 表示モード
End Type
Dim MyMenu As MENU
' --------------------------------------------------------------------------------
' 構造体変数 MyMenu を Menu.ini に保存
' --------------------------------------------------------------------------------
Private Function BSave(ByVal FileName As String, ByRef MyMenu As MENU) As Boolean
On Error GoTo Err_BSave
Dim isOK As Boolean
Dim intFreeFile As Integer
isOK = True
intFreeFile = FreeFile
Open FileName For Random As intFreeFile Len = Len(MyMenu)
Put #intFreeFile, 1, MyMenu
Exit_BSave:
On Error Resume Next
Close #intFreeFile
BSave = isOK
Exit Function
Err_BSave:
isOK = False
Resume Exit_BSave
End Function
' --------------------------------------------------------------------------------
' ランダムファイル Menu.ini を構造体変数 MyMenu にロード
' --------------------------------------------------------------------------------
Private Function BLoad(ByVal FileName As String, ByRef MyMenu As MENU) As Boolean
On Error GoTo Err_BLoad
Dim isOK As Boolean
Dim intFreeFile As Integer
isOK = FileExists(FileName)
If isOK Then
intFreeFile = FreeFile
Open FileName For Random As intFreeFile Len = Len(MyMenu)
Get #intFreeFile, 1, MyMenu
End If
Exit_BLoad:
On Error Resume Next
Close #intFreeFile
BLoad = isOK
Exit Function
Err_BLoad:
isOK = False
Resume Exit_BLoad
End Function
参考になれば幸いです。
この回答へのお礼
お礼日時:2006/01/15 12:12
ありがとうございます。
こんなにも具体的に教えていただけるとは思っておらず、ビックリしました。
教えていただいたものを参考にあれこれと試してみます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
構造体のデータを丸ごとコピー...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
C言語 構造体の中に共用体を定...
-
VBAの変数のデータ型を変更する...
-
プログラミング言語の変数と数...
-
構造体にする理由・利点・使用例
-
整数から16進数への変換 現在c...
-
命名規則 VB 構造体
-
1バイトデータの読み出しについて
-
値が代入されてない時
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
nullと""、\\0とEOFの違いにつ...
-
C# DataGridView のヘッダーセ...
-
c言語
-
配列を使わずに、変数名を動的...
-
配列の参照渡しで型が一致しま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
VBAの変数のデータ型を変更する...
-
typedefをプログラム中で解除す...
-
値が代入されてない時
-
構造体のデータを丸ごとコピー...
-
VBAにてcolorindexを変数に格納...
-
整数から16進数への変換 現在c...
-
変数の初期化について
-
long型のデータをバイト型の配...
-
1バイトデータの読み出しについて
-
命名規則 VB 構造体
-
異なる構造体のデータのコピー
-
VBAで符号無し整数
-
C言語 構造体の中に共用体を定...
-
日付チェック関数について
-
構造体のポインタにNULLが入らない
-
ビット演算について
-
VBAで変数定義を変更する方法
おすすめ情報