• ベストアンサー

リッチテキストボックスの中身をExcelにコピー

リッチテキストボックスを用いて 中身(テキスト)の単語を色々な表現(色、太字、サイズ)で表すことを行なっています。 この内容をExcelにコピーできるようにしたいのですが。 色などの情報を正しく引き継いでもらうためには どのようなコーディングをすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答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 参考になれば幸いです。

hiromu0103
質問者

お礼

ありがとうございます。 こんなにも具体的に教えていただけるとは思っておらず、ビックリしました。 教えていただいたものを参考にあれこれと試してみます。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#22222
noname#22222
回答No.1

ほぼ同様のことを私は次の要領で行っています。 (1)必要なプロパティ情報を構造体変数に代入しランダムファイルに記録。 (2)Excelでは、同じ構造体変数に呼び込み必要なプロパティを設定する。 以上です。

hiromu0103
質問者

補足

ごめんなさい。具体的にどういう風にしたらいいのか教えていただけませんか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【エクセル】テキストボックスのサイズを他のテキストボックスにもコピーできますか?

    こんにちは、みなさん!! AとういうテキストボックスのサイズをBとういう テキストボックスのサイズにコピーできますか? 例えば、テキストボックスAの幅が3高さが1だとします。 テキストボックスBのサイズをAと同じにするには、書式 設定から、高さ幅3高さ1と入力して同じサイズのテキスト ボックスにします。 これを、もう少し簡単にできる方法はありませんか? ご存知の方いらっしゃいましたらよろしくお願いします。

  • Word2003で新規テキストボックス作成時に他のテキストボックスの中身がコピーされる

    Win XP、Office2003を使っています。 Word文書内で図形描画ツールバーのテキストボックスボタンから新規にテキストボックスを作成すると、中に同じ文書内の他の場所のテキストボックスの中身がコピーされた状態で作成されます。 この新規テキストボックス内の文字を削除すると、コピー元(?)であるテキストボックス内の文字も同時に消えてしまいます。 この新規テキストボックスをまるごと削除すると、コピー元(?)であるテキストボックスも削除されます。そして、コピー元(?)であるテキストボックスが削除された跡地には空白のテキストボックスが残され、(図形描画ツールバーのオブジェクトの選択ボタンで探すと発見できる)しかもその空白のテキストボックスは中身の編集ができません。 普通に新規のテキストボックスを作成するにはどうしたらいいでしょうか。 報告書の提出が迫っていて困っています。

  • テキストボックスをExcel→Wordにコピーはなぜ書式もコピーできないか?

    Word上でうまくテキストボックスを作成できないため、テキストボックスを Excel上で作成してそれをコピーしてWordに貼り付けた場合 コピーはできるのだが、ファントやのフォントの大きさがコピー元のサイズと ちっがって貼り付けられます。 ■同じフォント同じフォントの大きさでコピーはできないのでしょうか? わかる方教えてください。

  • テキストボックスのコピー

    テキストボックスの中に、テキストボックスを挿入したものを、コピーして貼り付けようとすると、一つのテキストボックスしかコピーできません。 結果、いちいち、テキストボックスを一ずつコピーする事態になってしまいます。 全てコピーするにはどうしたらいいでしょうか?

  • Excel テキストボックスへセルの中身をリンク。

    Excelの =D3 のような感じでセルの中身をテキストボックスへ貼り付けたいのです。 何かいい方法はありますでしょうか? 以前どこかでこの方法を見かけたのですがどこで見たか忘れてしまって…。 よろしくお願いします。

  • テキストボックスをコピーできるソフトを探しています!!

    テキストボックスをコピーできるソフトを探しています!! 下に添付した画像の赤で囲った部分のテキストボックス内を コピーできるフリーソフトを探しています。 当然のことですが、このテキストボックスの中身は普通にはコピペできません!! これなら絶対いけるというソフトがあったらぜひ紹介して下さい。 ちなみにコピットというフリーソフトで試してみましたが無理でした。

  • ワード2007へのテキストボックスのコピーについて教えてください。

    ワード2007へのテキストボックスのコピーについて教えてください。 エクセル2007作成のシートにあるテキストボックスをコピーしてワード2007に貼付けると図形として取り扱われ、編集ができません。ワード2003では図形にはならず、そのまま使えたのですが、対処を教えてください。

  • 同じ大きさのテキストボックスをたくさん作るには?

    エクセルで作業しています。 同じ大きさのテキストボックスをたくさん作りたいのですが、テキストボックスはコピーできませんでした。 仕方なく一つ作ったテキストボックスの上から、重ねて同じ大きさになるように作っています。 増やす方法が合ったらよろしくお願いします。

  • EXCELのテキストボックスについて

    図形描画のテキストボックスを使用して文字を色分けして使っています テキストボックスの3列目を赤色で点滅 別のテキストボックスの6列目を青で点滅 エクセルでは不可能なのでしょうか? どうか宜しくお願い致します。

  • セレクトボックスを切り替えるとテキストボックスの中身が消える

    セレクトボックスを切り替えるとテキストボックスの中身が消えるというのはJavaScriptでできますか?書き方が分かりません。教えてください。例えばセレクトボックスの中身を"新規作成"にしたとき。消えてくれればうれしいです。