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で質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Excel(エクセル) Excel でマクロ利用しセル内テキストを修正しております(半角カナを全角にするなど)。 ただ、セル 4 2023/06/15 21:29
- Excel(エクセル) Excei で、項目の横展開 2 2023/07/15 09:56
- Excel(エクセル) Excelエクセルが勝手に10MBになりました シートを沢山使ってデータを書いてました。挿入のテキス 4 2023/07/25 15:12
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Visual Basic(VBA) EXCEL VBA データベースの内容をユーザーフォームに表示したい。 5 2023/02/14 11:40
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- その他(Microsoft Office) Excelの条件付き書式についての質問です。 2 2022/09/08 01:25
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Visual Basic(VBA) Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法 5 2022/08/17 14:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Integer変数をカラにしたいので...
-
VBAのプログラムで、DIAG = 1# ...
-
構造体のポインタにNULLが入らない
-
typedefをプログラム中で解除す...
-
構造体の初期化方法について
-
long型のデータをバイト型の配...
-
charとucharの違い
-
C++ 構造体の一括初期化 {0}
-
構造体のデータを丸ごとコピー...
-
構造体のメンバ初期化について
-
値が変わるのはどうしてでしょ...
-
列挙子(enumlator)の内容を文字...
-
VBAにてcolorindexを変数に格納...
-
関数の引数の順番の混乱を回避...
-
[Scilab]関数の宣言とodeの使い...
-
「#undef」と「#define」の使い...
-
VB.NETのStructureというのはど...
-
aspでユーザー定義の構造体を作...
-
VBAの変数のデータ型を変更する...
-
C言語 構造体の中に共用体を定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
構造体のデータを丸ごとコピー...
-
C言語 構造体の中に共用体を定...
-
VBAにてcolorindexを変数に格納...
-
long型のデータをバイト型の配...
-
値が代入されてない時
-
charとucharの違い
-
typedefをプログラム中で解除す...
-
構造体のポインタにNULLが入らない
-
異なる構造体のデータのコピー
-
整数から16進数への変換 現在c...
-
VB.NETのStructureというのはど...
-
VBAの変数のデータ型を変更する...
-
構造体にする理由・利点・使用例
-
winsockのsendtoで送れるデータ型
-
VBAで符号無し整数
-
命名規則 VB 構造体
おすすめ情報