リソースファイルの使用方法 への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 るきお  (社会人)
投稿日時
2010/8/26 12:41:45
最適な解はわかりませんが、
とりあえずリソースファイルの扱いについてはこちらのWebサイトがわかりやすく詳しいようです。
http://dobon.net/vb/dotnet/programing/vsresource.html
一応、簡単に書くと、
リソースの登録はソリューションエクスプローラでMy Projectをダブルクリックして、リソースページから追加する方法です。
これで、たとえばTest_xlsという名前のリソースとして登録するとプログラムからは次のようにして登録したリソースを開けます。※リソースの実体はxlsファイルと言う前提
とりあえずリソースファイルの扱いについてはこちらのWebサイトがわかりやすく詳しいようです。
http://dobon.net/vb/dotnet/programing/vsresource.html
一応、簡単に書くと、
リソースの登録はソリューションエクスプローラでMy Projectをダブルクリックして、リソースページから追加する方法です。
これで、たとえばTest_xlsという名前のリソースとして登録するとプログラムからは次のようにして登録したリソースを開けます。※リソースの実体はxlsファイルと言う前提
Dim tempPath As String = IO.Path.GetTempFileName & ".xls"
IO.File.WriteAllBytes(tempPath, My.Resources.Test_xls)
Process.Start(tempPath)
'どこかでファイルを消さないとどんどんtempPathのフォルダーに溜まります。
投稿者 えいちゃん  (社会人)
投稿日時
2010/8/26 01:43:59
さっそくの返答をありがとうございます。
エクセルのフォーマットを開くのは社内の別の人間です。どうしてもエクセル形式でもらわなくてはいけない事情がありました。
そのエクセルフォーマットなんですが、誰でも使える(パソコン初心者でも)をコンセプトに作成したので、ユーザーフォームとVBAのマクロをふんだんに利用して作成しました。
作成が終わって「失敗だ」、、、と思ったのが「初心者はマクロのセキュリティ設定が直せない」と思い、作成したのがVBSから
ーーー = CreateObject("Excel.Application")
ーーー.Visible = True
ーーー.DisplayAlerts = False
ーーー.Workbooks.Open("問題の場所")
ーーー = Nothing
を使用した外部スクリプトから強制的にマクロの警告文をシャットダウンするものでした。
と、ここまではスムーズに作成できたのですが、、、、、
何らかの方法でプログラム内に埋め込んだフォーマットを使用して、誤ってエクセルのフォーマットを上書きしてしまうという事故を防ぎたいのです。
考えたのが、
1.外部アプリからエクセルのドキュメントを呼び出す→ 2.エクセルで作業をさせる
3.作業終了時に自動的にデスクトップに別名保存
という方式をとりたいのです。ですが自分はVisual Basic専門ではない(エクセルのマクロくらいなら作れますが)ので、自作アプリケーションにエクセルファイルを埋め込んで、それを呼び出す方法がわからなくて困っていました。上のコードの「"問題の場所"」の部分が、普通はパスを指定するのですが、内部に埋め込んだエクセルファイルを呼び出す方法が、本を読んでもよくわからなかったので(というか触れられてなかった、、、、)
どうか知恵をお貸し下さい。
ちなみに上の目的を果たせれば方法は別でもかまいません。
エクセルのフォーマットを開くのは社内の別の人間です。どうしてもエクセル形式でもらわなくてはいけない事情がありました。
そのエクセルフォーマットなんですが、誰でも使える(パソコン初心者でも)をコンセプトに作成したので、ユーザーフォームとVBAのマクロをふんだんに利用して作成しました。
作成が終わって「失敗だ」、、、と思ったのが「初心者はマクロのセキュリティ設定が直せない」と思い、作成したのがVBSから
ーーー = CreateObject("Excel.Application")
ーーー.Visible = True
ーーー.DisplayAlerts = False
ーーー.Workbooks.Open("問題の場所")
ーーー = Nothing
を使用した外部スクリプトから強制的にマクロの警告文をシャットダウンするものでした。
と、ここまではスムーズに作成できたのですが、、、、、
何らかの方法でプログラム内に埋め込んだフォーマットを使用して、誤ってエクセルのフォーマットを上書きしてしまうという事故を防ぎたいのです。
考えたのが、
1.外部アプリからエクセルのドキュメントを呼び出す→ 2.エクセルで作業をさせる
3.作業終了時に自動的にデスクトップに別名保存
という方式をとりたいのです。ですが自分はVisual Basic専門ではない(エクセルのマクロくらいなら作れますが)ので、自作アプリケーションにエクセルファイルを埋め込んで、それを呼び出す方法がわからなくて困っていました。上のコードの「"問題の場所"」の部分が、普通はパスを指定するのですが、内部に埋め込んだエクセルファイルを呼び出す方法が、本を読んでもよくわからなかったので(というか触れられてなかった、、、、)
どうか知恵をお貸し下さい。
ちなみに上の目的を果たせれば方法は別でもかまいません。
投稿者 YuO  (社会人)
投稿日時
2010/8/26 00:55:35
その「エクセルデータのフォーマット」を開くのは誰ですか。
自プログラムでないならば,テンポラリファイル等に書き出す必要があります。
自プログラムでないならば,テンポラリファイル等に書き出す必要があります。
投稿者 えいちゃん  (社会人)
投稿日時
2010/8/25 16:48:29
Visual Basic あまり使ったことの無いものです。
Visual Basic 2008を使用しております。
初級的な質問で申し訳ないのですが、、、アプリケーション自体にエクセルデータのフォーマットを登録しておき、アプリケーションが起動するごとに、そのエクセルフォーマットを開いて閉じるときにデスクトップに別名保存する。的なソフトを作りたいのですが、、、
リソースに登録したファイルが旨いこと呼び出されません。購入した本にもそのことについて触れられてなかったので、、、、、
My.Resources.ファイル名
で呼び出すのでしょうか???
もしかして自分で想像している以上に高度なことをやろうとしているのでしょうか??
すいません、だれか教えて頂けませんか????
Visual Basic 2008を使用しております。
初級的な質問で申し訳ないのですが、、、アプリケーション自体にエクセルデータのフォーマットを登録しておき、アプリケーションが起動するごとに、そのエクセルフォーマットを開いて閉じるときにデスクトップに別名保存する。的なソフトを作りたいのですが、、、
リソースに登録したファイルが旨いこと呼び出されません。購入した本にもそのことについて触れられてなかったので、、、、、
My.Resources.ファイル名
で呼び出すのでしょうか???
もしかして自分で想像している以上に高度なことをやろうとしているのでしょうか??
すいません、だれか教えて頂けませんか????
大変助かりました~~