VBのEXEファイルを他のPCで実行したい

解決


VB横好人間  2004-06-13 10:30:08  No: 83980  IP: [192.*.*.*]

VB6(SP6)で簡単なグラフィックス画面のソフトを作りました。OCXは一切使っておりません。  当方の希望は見る人が簡単に操作できるように  ①インストールしないで動かせるようにしたい  ②WEBでの配信を考慮してなるべく小さなものにしたい、と考えています。
友人に聞きましたら「Windowsには最初からランタイムが入っているのでランタイムなどは不要」とのことでしたのでソフト(ABC.EXE)だけを配信したところこれでもOKは多かったのですが「文字化け」と「error5  プロシージャの呼出し、または引数が不正です」の問題が発生しました。ディストリビューションウイザードで表示される依存ファイルを全部添付する必要があるのでしょうか?  最低限必要な添付ファイルは何か、どうやってそれを知るのかなどを教えてください。

編集 削除
岡田 之仁  2004-06-13 14:49:40  No: 83981  IP: [192.*.*.*]

VB6 のアプリを動作させるのに必要な最低限度のものを
ランタイムパッケージといいますが・・・

それが必要です。
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C

コンパイル後のEXEのみを持っていって、何も設定していない、
且つ、VB6 ランタイムも無い環境では、動作しません。
OS的には、入っているものがありますが、サービスパック
の都合とかも出てきますので・・・

※  Webの配信とありますが・・・
    最低動作する環境が整っていれば、EXEのみを配信しても
    可能だとは思いますが・・・注意が必要だと思います。

以上。

編集 削除
魔界の仮面弁士  2004-06-13 15:02:20  No: 83982  IP: [192.*.*.*]

> Windowsには最初からランタイムが入っているのでランタイムなどは不要
すべてのWindows OSがそうだというわけではありませんが、最近のOSには、
確かにVB6の仮想マシン(MSVBVM60.DLL)が含まれています。

…しかし、VB横好人間さんがお使いの「SP6」のランタイムに関しては、
今の所、どのOSにも標準では含まれていません。

> インストールしないで動かせるようにしたい
手動で配布する場合、相手先のファイルの方が新しいにも関わらず、
古いバージョンで上書きしてしまう事が無い様、注意してください。

ただし、古いOS(Win95など)の場合、VB6の仮想マシンだけでなく、
OLE関係のコンポーネントを更新する必要がありますので、相手先PCに
よっては、最低1回は、インストール作業が必要になる事があります。

> WEBでの配信を考慮してなるべく小さなものにしたい
ランタイムがインストール済みのPCであれば、exeのみの配布で十分なので、
ランタイムだけは、Vector等で公開されている物を利用して貰っては如何でしょう。

> 「文字化け」と
「日本語リソースDLL(VB6JP.DLL)」が含まれていない可能性があります。
仮想マシンがあればexe自体は実行できますが、VB6JP.DLLが無い場合、
日本語表示が化けるという現象が起きます。

VB6JP.DLLがあるのに化ける場合は、Label1.Font.Charset などの値が
日本語を表す 128 ではなく、0 になってしまっている可能性があります。
Charsetを確認の上、再コンパイルしてみてください。

> 「error5  プロシージャの呼出し、または引数が不正です」
これは、いろいろな原因が考えられますので、何ともいえません。
例えば、引数が間違っている場合以外の要因としては、
非表示のコントロール(Form_Load中など)でSetFocusした場合などにも
このエラーが発生する事があります。

> 最低限必要な添付ファイルは何か
相手先のPC次第です。
ランタイムが揃っているなら、exeだけでOKです。インストールも不要です。

ランタイムが無い場合、参照設定を可能な限り少なくしているならば、
MSVBVM60.DLLと、VB6JP.DLLだけで動作する可能性が高いですのですが、
先にも書いたように、OSによっては、OLE関係のコンポーネントも
更新しなければならない可能性もあります。MSDNライブラリの
  [Visual Basic ドキュメント]
  └[Visual Basic の使用方法]
    └[プログラミング ガイド]
      └[Visual Basic を使ってできること]
        └[作成したアプリケーションの配布]
          └[セットアップ ツールキット]
            └[配布するファイル]
に、OLE関連のDLLも含めた一覧があるので、参考にしてみて下さい。

# もし、何らかのActiveXコンポーネントを使っている場合は、
# *.DEPファイルを見て、依存関係を確認することができます。

編集 削除
だい  2004-06-14 08:19:02  No: 83983  IP: [192.*.*.*]

VB6アプリの配布については、
VB6ランタイム付きフルパッケージと
ランタイム導入済み環境用のEXEやINIファイル等だけのパッケージ
を2種類用意して、
ダウンロードするユーザが自身の環境に合わせていずれかを選択できるように
用意してあげると喜ばれると思います。


ここからもランタイムをダウンロード可能です。
Visual Basic 6.0 Service Pack 6:ランタイム再頒布可能パッケージ (vbrun60sp6.exe)
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C

編集 削除
ターボ  2004-06-14 11:26:27  No: 83984  IP: [192.*.*.*]

アプリケーションの配布については配布ウイザードを使うのが一番簡単です。
配布ウイザードを使えば、そのアプリケーションを実行するのに必要なDLL等がすべてまとめられます。

VBの「ヘルプ」を起動し、「キーワード」で”配布”を検索し、”アプリケーション”をクリックするとやり方が表示されます。

趣旨と違っていたら無視して下さい。

編集 削除
VB横好人間  2004-06-15 12:30:54  No: 83985  IP: [192.*.*.*]

皆様ありがとうございます。  特に「魔界」様のご親切なアドバイスで知見が広がりました。「相手のPCにインストールしない」で動かそうという目的ですが相手が不特定の場合は

①EXE+VB6JP.DLL  による最低限のもの。(最低限の文字化け問題だけには対応)
②依存ファイルにリストにリストされるDLLを全部付けたもの  
③再配布のダウンロード先へのリンク

を並べておけば何とかなるのではないかと判断しました。

経験豊富な方々のおかげで何とかなりそうな自信がつきました。  助かりました。

編集 削除
hatahata  2004-06-16 01:34:59  No: 83986  IP: [192.*.*.*]

クローズされたところに追記ですみません。
私も同じように小さなEXEファイルだけの配布をしたくて、色々試した事があります。
結果的にランタイム無しでも実行できる場合もありました。
Visual BasicのProfessional Editionでしたらネイティブコードコンパイルが可能です。
プログラムの中身によっては、必ずしもランタイムを参照するとは限らないと思います。
プログラム内で使用する関数がどうしてもランタイムを参照するような場合はエラーが出てしまうのですが、
どの関数がダメといった詳細は解りません。でも試して見る価値はあると思います。
もちろん、追加コンポーネントを使った時点でこの方法はアウトです。
それとランタイムが無いと文字化けする点ですが、デフォルトのMS Pゴシック9ptをMSゴシック10ptに変えるとちゃんと表示しました。

ご参考までに・・・

編集 削除
魔界の仮面弁士  2004-06-16 02:56:44  No: 83987  IP: [192.*.*.*]

> プログラムの中身によっては、必ずしもランタイムを参照するとは限らないと思います。
いえ、残念ながら、ネイティブコードでコンパイルされているかどうかには
関係なく、必ずランタイムが利用されるようになっています。

確認のため、フォーム等を一切使わず、参照設定も極力外した状態で、
  Option Explicit
  Sub Main()
  End Sub
という3行だけを書いた「何もしないプログラム」を作成して試してみましたが、
VB6のランタイムである MSVBVM60.DLL をリネームしてから実行させると、
MSVBVM60.DLL が無い事を示す警告が表示される結果となりました。

ランタイム無しで動作するプログラムを書きたいなら、
VBではなく、Delphiを利用される事をお奨めします。


VB5登場時の「最適化機能つきネイティブコンパイラ採用」という宣伝文句には、
多くのユーザが期待していましたが(VB4まではインタプリタでした)、
実際には、VB5はおろか、その後継のVB6であっても、ランタイム不要とは
ならず、「ランタイム必須のネイティブ EXE」という形になっています。
http://homepage3.nifty.com/salv/v_sickhack/01/v_s01-04.htm

ちなみに16bit版のVBでは、ランタイムをレジストリに登録する必要も
なかったため、ランタイムとEXEを、同じフォルダに置いておくだけでも
インストールせずに実行させる事が可能でした。そのため、Win95が
登場した当時のソフトの中には、CD-ROMのルートフォルダに、
16bit版VBのランタイムとEXEを配置していたソフトもありました。

編集 削除
hatahata  2004-06-16 23:38:48  No: 83988  IP: [192.*.*.*]

すみません。蛇足でした。
私、すっかりマイクロソフトの罠にはまってしまっていました。(^^;


魔界の仮面弁士の言う通りMSVBVM60.DLLを探してリネームしてみるとエラーがでました。
Windows2000やXPでは最初からDLLが入っていたんですね。
それで勘違いをしてしまいました。
(サービスパックで追加されたのかも知れないが、ソフト無しの状態で最低限の
セキュリティアップデートをすると、2000ではSP2は必須ですから・・・)
結果的にMSVBVM60.DLLはOSに組み込まれている可能性が非常に高い。
だからマイクロソフトはネイティブコードコンパイルとごまかして言う。
そして私のような者が、まんまと騙される。

<以下は前回の発言の訂正です>
しかしOS付属のレベルでは、文字化けを起こす事があるんです。
VB6JP.DLLとかが無いからでしょうか。
そこで、VBランタイム集を別途インストールしたり何らかのVBのソフトを
インストールすると解消します。
でも、そのような例ではフォントの指定変更だけで何とかなる
・・・と言うようなTipsです。(この説は合っているでしょうか?)

それから、少し実験してみました。
まず、VBランタイムもソフトもインストールしていないWindows2000を用意。
MSVBVM60.DLLをリネームして通常エラーが起きる状態にしておき、
実行ファイルEXEとMSVBVM60.DLLを同じフォルダに置いてみたら動きました。
これは、使えないでしょうか?
CD-RのAutoRUNとかインストール権限の無いユーザーが2000やXPでソフトを
実行できるとか・・・。
この検証って間違ってます?(また、どこかに落とし穴はあるかな?)

編集 削除
魔界の仮面弁士  2004-06-17 01:14:58  No: 83989  IP: [192.*.*.*]

> でも、そのような例ではフォントの指定変更だけで何とかなる

ラベル等が文字化けする最大の原因は「規定のフォント」にありますので、
完全にとはいきませんが、その対応でも、ある程度は何とかなります。


試しに、こんな実験をしてみて下さい。

1. 新規プロジェクトで、Form1 に Label1 と Command1 を貼ります。
2. 文字化けを防ぐため、Label1のフォントを「System」に変更します。
   この時、Command1 と Form1 のFont設定には触らないで下さい。
3. 以下のコードを追加します。
    Private Sub Command1_Click()
      With Command1.Font
        Label1.Caption = .Name & vbCrLf & .Charset & vbCrLf & .Size
      End With
    End Sub
4. これをコンパイルして、そのEXEを実行します。

——そうすると、WinXPでは以下のような結果になります。

a) VB6JP.DLL がある時: MS Pゴシック, 9Pt, Charset = 128
b) VB6JP.DLL が無い時: MS Sans Serif, 8.25Pt, Charset = 0

これにより、『規定のフォントに違いがある』事がわかるかと思います。

…さて、このソースに対して、さらに以下の修正を加えます。

5. Command1のFontプロパティを開き、サイズを10Ptに修正して、OKを押します。
6. もう一度Command1のFont設定を開き、9Ptに戻してOKを押します。
7. これをコンパイルして、そのEXEを実行します。

今度は、VB6JP.DLL の有無に関わらず、同一フォント(MS Pゴシック, 9Pt)になります。


文字化けの原因の1つはこの点にあります。

VB6自体の規定フォントは、MS Sans Serif になっているため、
「特に指定が無い場合」は、この欧文フォントで表示されてしまうのです。

そのため、日本語を表示するときに問題が生じてしまうというわけです。


ただし、VB6JP.DLL が無い事による問題は、規定フォントの違いだけでは
ありませんから、厳密には、Fontさえ変更すれば良いわけではありません。

例えば、VB6の実行時エラーのメッセージなどが日本語で表示されないなどの
違いもありますので、出来る限り、ランタイムをインストールする事が、
正しい解決策と言えるでしょう。

編集 削除
魔界の仮面弁士  2004-06-17 02:24:25  No: 83990  IP: [192.*.*.*]

> (サービスパックで追加されたのかも知れないが、
サービスパック無しの、素のWin2000にも含まれていたりします。(VB6SP3相当)

MSVBVM60.DLLがどの製品に含まれているかは、DLL Help Database等で
確認する事ができます。下記で検索してみてください。
http://support.microsoft.com/default.aspx?scid=/servicedesks/fileversion/dllinfo.asp

> 結果的にMSVBVM60.DLLはOSに組み込まれている可能性が非常に高い。
最近のOSに限定すれば、そうとも言えますね。

ただし、VB6のサービスパックは、「Service Pack 6」が最新です。
このバージョンの MSVBVM60.DLL は、現行バージョンのOSには
標準では含まれていませんので、注意が必要です。


> だからマイクロソフトはネイティブコードコンパイルとごまかして言う。
> そして私のような者が、まんまと騙される。
騙された!と思われた時は、そのまま泣き寝入りするのではなく、
勘違いの原因となった資料の記述を、Microsoft の Document Team に
伝えてみてください。VB6のような古い製品では難しいですが、
現行製品や新製品向けの資料であれば、指摘の内容が適切であれば、
それ以降に作成される資料では、表現が改められる可能性があります。

最近の製品のヘルプやWebページの場合、ページの最後に、
『このドキュメントについてのフィードバック』のようなリンクが
ありますので、それをクリックすれば、意見を送信できます。

ちなみに、「英語のドキュメント」であった場合でも、内容の
フィードバックに関しては、とりあえず日本語でも良いとの事です。
米国本社内にも、日本語の interpreter はいらっしゃるとの事で、
間違い等の関しては、一応、日本語でも大丈夫だと聞いています。

# ただ、細かいニュアンスの違い等に関しては、伝わりにくい事も
# 考えられますし、世界中からフィードバックを受け付けている事も
# 考えると、できれば英語で書いた方が良いのでしょうけれどね。(^^;)


> 実行ファイルEXEとMSVBVM60.DLLを同じフォルダに置いてみたら動きました。
Win2000などの環境ならば、(OCX等を使わなければ)概ね問題ありませんが、
一部の古い環境(例えば、IE3がインストールされているようなPC)ですと、
OLE関係のコンポーネントが古すぎるため、正しく動作しません。

OLE関連のコンポーネントまでも含めたランタイムの話については、
先の「2004/06/13(日) 15:02:20」の回答も参考にしてみてください。

編集 削除
VB横好  2004-06-24 12:12:42  No: 83991  IP: [192.*.*.*]

各種の情報をありがとうございます。  VBのランタイムが抱える致命的(?)な諸問題が出てきて大変参考になるとともにその限界もわかたような気もしてある種の失望も感じました。  しかしDelfiもすぐ覚えられる訳でもありませんのでVBとの関係は今後も続けなければなりません。

そこでまた新たな質問をさせていただきます。前回は「インストールしないで使いたい」「OCXなし」「なるべく最小サイズ」を条件に「VBソフト.exe  +  VB6JP.DLL」で大体のPCにはOKであることがわかりましたのでこれでやっております。  

しかしその後「RS232Cも使いたい」という要望が出てきましたのでこれを使えるソフトを作ってディストリビュションウィザードで依存ファイルを調べました。その結果「MSCOMM32.OCX」「MSMAPI32.OCX」などが新たに依存ファイルに加わりました。「インストールしないで使わせたい」という最初からの希望から「OCXだけを登録させる」などの方法でRS232Cを扱うソフトを「インストールしない」で動かすアイデアがありましたらご教示いただけませんでしょうか。

編集 削除
魔界の仮面弁士  2004-06-24 13:31:25  No: 83992  IP: [192.*.*.*]

どのファイルを、どのように配布すれば良いのか、十分な知識が無い場合は、
きちんとインストーラを作って、通常の手順どおりに配布された方が無難です。

高機能なインストーラだと、インストーラ自体にはDLL等が含まれず、
「ファイルが無い場合のみ、必要なDLLを動的にダウンロードする」という
機能を持つ物もありますし。

ランタイムを配布しないならば、自分のアプリが動かないだけで済みますが、
間違ったバージョンのファイルを配布してしまった場合、『DLL Hell』と
呼ばれる問題を引き起こし、他のアプリにまで悪影響を与える事がありますよ。


> RS232Cを扱うソフトを「インストールしない」で動かすアイデア
「OCXなし」という条件を満たしたいならば、ActiveXコンポーネントに頼らず、
APIのみでRS232Cを制御してやれば、実現可能かと思います。

> 「OCXだけを登録させる」
既に御存知かと思いますが、ActiveXコンポーネントを使う場合は、
レジストリへの登録が必要となります。

ActiveXコントロールの場合は、コマンドラインから
  REGSVR32.EXE C:\〜\MSCOMM32.OCX 
を実行する事で、手動登録が可能です。

なお、『MSComm32.ocx Version 6.0.81.69』の場合、日本語版では、
ComCat.dll(4.71.1460.1以上) や MSComJP.dll(6.0.81.63)にも依存する事に
なりますので、これらのファイルについても存在チェックが必要かと思います。
まぁ、最近のOSなら、ComCat.dll は大抵持っていますので、必要になるのは、
MSComm32.ocx と MSComJP.dll ぐらいかも知れませんけれどね。

(コントロール単体)
 http://activex.microsoft.com/controls/vb6/mscomm32.cab

(サテライトDLL単体)
 http://activex.microsoft.com/controls/vb6/MSComJP.cab

もし、ComCat.dll すら無い場合は、下記を利用できます。
(Visual Basic 6.0 Service Pack 6:ランタイム再頒布可能パッケージ)
 http://www.microsoft.com/downloads/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c&displaylang=ja

編集 削除
VB横好  2004-06-24 14:38:17  No: 83993  IP: [192.*.*.*]

魔界の仮面弁士様、早速お返事をいただきありがとうございます。  無限とも思われるそのご経験と知識にはただただ驚くばかりです。当方の理解力が追いつかずに曖昧なところばかりで今一つ確信が持てませんが、今までのアドバイスを読み返して「再配布可能パッケージを使えば全てのVB環境が整備される」と解釈し、次のような対応策を考えました。  間違っていたら恐縮ですがご教示ください。

1.WEBで配布するソフトはRS232cを扱うものでMSCOMM32OCX、MSMAPI32.OCXなどのOCXが必要。(APIでRS232cを扱う方法は「技」シリーズにもなく今の私には手に負えません)  このEXE  +  VBRUN60SP6.EXE  +  各種データをLZHで圧縮、配信。

2.LZHでWEB配信したものをユーザーに適当なフォルダーに解凍してもらい「VBRUN60SP6.exe」をクリックしてもらう。(これでユーザーのPC環境がVB6に対応?)

3.そのあとで当方の配信ソフトを動かしてもらう。

ということで動くと解釈して宜しいでしょうか?

配信するソフトに付属するデータフォルダーが結構複雑でなるべく解凍したフォルダー内で処理させたいための苦肉の策です。  毎々ですが宜しくお願いします。

編集 削除
魔界の仮面弁士  2004-06-24 15:23:20  No: 83994  IP: [192.*.*.*]

> 「再配布可能パッケージを使えば全てのVB環境が整備される」と解釈し、
まず、その解釈が間違っています。

『「再配布」可能パッケージ』というのは、おそらく、先の VBRUN60SP6.exe という
『「再頒布」可能パッケージ』の書き間違いかと思いますが、それを配布したとしても、
VB6の実行環境が整備されるわけでは無いのです。これだけでは不十分です。

先述の再頒布可能パッケージに含まれているのは、VB6(のService Pack 6)の
「必要最小限」なランタイムだけです。ActiveXコンポーネントの類はおろか、
以前の回答に書いた「VB6JP.DLL」すら含まれていません。確認してみてください。



> 1.WEBで配布するソフトはRS232cを扱うものでMSCOMM32OCX、MSMAPI32.OCXなどのOCXが必要。
えぇと……MAPIメッセージコントロールも使っておられるのでしょうか。
MAPIコントロール自体は、RS232c の操作には関係ありませんので、もし、
MAPIを使っていないならば、MSMAPI32.OCX の方は含めなくても良いですよ。


> 2.LZHでWEB配信したものをユーザーに適当なフォルダーに解凍してもらい
> 「VBRUN60SP6.exe」をクリックしてもらう。(これでユーザーのPC環境がVB6に対応?)
上記に書きましたように、VBRUN60SP6.exe は最低限のランタイムだけであり、
MSCOMM32.OCX 等が含まれていませんから、それだけでは NG ですね。
OCX (および、その依存ファイル)の配布と、レジストリへの登録作業が必要になります。


《Service Pack 6 入手方法》
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/order_vs6sp6.asp

まず、上記を見てください。vbrun60sp6.exe とは別に、「Visual Basic 版」と
いうパッケージがありますよね。これが、完全なランタイムパッケージとなります。
この中に、再頒布可能なファイルが含まれていますので、それを利用してください。
(再頒布可能なファイルの一覧は、REDIST.TXT に書かれています)


ただ、個人的には、やはりインストーラを作られる事をお奨めします。

どうしても配布サイズを減らしたいなら、とりあえずは単体のexeだけを配布し、
それで動かない場合のために、「インストーラ付きパッケージ版」を、
別途用意しておく、という方法を採られては如何でしょうか?


なお、自分でインストーラを(Visual Studio Installerにて)作成する場合には、
先の《Service Pack 6 入手方法》の URL に書かれている
  「Visual Basic および Visual C++ の Service Pack 用マージモジュール」
に含まれるマージモジュールを使う事ができます。

編集 削除
VB横好人間  2004-06-24 17:37:42  No: 83995  IP: [192.*.*.*]

魔界の覆面弁士様、何度もありがとうございます。理解力が無くて全部にはついていけずにお手数をお掛けして申し訳ありません。  インストーラーを作ることに躊躇したのは複雑なデータファイルのフォルダー構成をどうやってユーザーに再現させるかと言う問題でした。  しかし今良い方法(?)を思いつきました。「複雑なフォルダー構成のデータをLZHで圧縮した自動解凍のexeファイルをインストールするファイルの一部に組みこんでおき、ユーザーがこれをクリックすればApp.Path上に展開される」という方法を思いつきました。  これは簡単な方法だと思いますが如何でしょうか。

当方は専ら「ディストリビューションウィザード」(しか知らない)でインストーラーを作成していますが今までは各種の問題があって泣かされてきました。  (SP6では問題はでていないようです)VBソフトのインストールに一番適したご推奨のインストーラーは?  皆様どのようなものをご使用になっておられるのでしょうか教えてください。

編集 削除
魔界の仮面弁士  2004-06-24 18:16:30  No: 83996  IP: [192.*.*.*]

> 複雑なデータファイルのフォルダー構成をどうやってユーザーに再現させるかと言う問題でした
ユーザーに手動で作成させずとも、アプリ側で対応させれば良いかと。

例えば、VBのアプリが、起動時にフォルダ構成を(Dir関数等で)確認して、
データフォルダが無ければ、自動的に(MkDirステートメントで)作るような
コードを、プログラムの先頭に仕込んでおくとか…。

あるいは、インストーラによっては、セットアップ時にフォルダを
作成させる事ができるようなものもあるようですし。

> VBソフトのインストールに一番適したご推奨のインストーラーは?
業務アプリであれば、市販のインストーラの方が良いかと思います。
無料のインストーラが良ければ、このあたりを参考にしてみるとか。
http://dobon.net/vb/installer/index.html

編集 削除
VB横好  2004-06-27 09:40:40  No: 83997  IP: [192.*.*.*]

沢山のアドバイスをありがとうございました。  各種のインストーラーをご紹介いただき見入っていました。  いろいろあるようでしたが比較したサイトでの総括から見ると何やかや言ってもMSのディストリビューションウィザードの評価は悪くなさそうですので、それならば今まで勝手がある程度わかっているこれにしました。

複雑なデータファイルのフォルダー構成をどうするか悩んでいましたが、これはまとめてLZH圧縮(exe)してソフトからshellで一括解凍することで対応できました。  

インストーラーについては今後の課題として理解しやすくて実践的なものを捜していこうと思っていますが、以前愛読した「VB実践テクニック」(藤田伸二氏著)に出ているインストーラーがソースも分かっているのでこれから研究(というほどでもありませんが)試していきたいと思っています。  いろいろとありがとうございました。  沢山の有効なアドバイスに感謝します。

編集 削除