Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4949 / 13644 ツリー ←次へ | 前へ→

【53100】2つのファイルのマクロの同時実行 yhar 07/12/14(金) 16:47 質問[未読]
【53104】Re:2つのファイルのマクロの同時実行 ichinose 07/12/15(土) 9:36 発言[未読]
【53142】Re:2つのファイルのマクロの同時実行 yhar 07/12/17(月) 11:19 質問[未読]
【53149】Re:2つのファイルのマクロの同時実行 yhar 07/12/17(月) 17:22 質問[未読]
【53159】Re:2つのファイルのマクロの同時実行 ichinose 07/12/17(月) 21:55 発言[未読]
【53166】Re:2つのファイルのマクロの同時実行 一... ichinose 07/12/18(火) 7:41 発言[未読]
【53168】Re:2つのファイルのマクロの同時実行 追伸 ichinose 07/12/18(火) 8:28 発言[未読]
【53169】★まずは御礼★ 追伸 yhar 07/12/18(火) 8:45 お礼[未読]
【53185】Re:2つのファイルのマクロの同時実行 ichinose 07/12/18(火) 21:27 発言[未読]
【53430】【御礼】2つのファイルのマクロの同時実行 yhar 08/1/10(木) 16:55 お礼[未読]
【53143】Re:2つのファイルのマクロの同時実行 Who Me? 07/12/17(月) 11:34 発言[未読]
【53144】Re:2つのファイルのマクロの同時実行 yhar 07/12/17(月) 13:44 お礼[未読]

【53100】2つのファイルのマクロの同時実行
質問  yhar  - 07/12/14(金) 16:47 -

引用なし
パスワード
   いつもこの掲示板にはお世話になっています。
今回は2つのマクロを同時に実行することは出来ないのか?と言う質問です。

具体的に

1.omote.xlsには、1秒単位で現在時間とカウントダウンを表示するプログラムを記述(Timerを用いてDoEventsで時間を取り込む)しておく。
2.ura.xlsには、シリアル通信により3秒毎にデータ取り込み(これもTimer+DoEventsを使う)を行うプログラムを記述しておく。(※無限ループに近い動作)
3.omote.xlsのプログラム実行の頭でApplication.Runでura.xlsのマクロを起動して2つマクロを同時に動かす。

と言うものです。それぞれのマクロ単体では間違いなく動作することを確認済みですが、Application.Runの記述を活かしてやると

●omote.xlsでは時計の表示が数秒置きになり、カウントダウンしなくなる。

と言うところまでは確認できています。

何となく2つのマクロは同時に動かない様に感じ構想を練りなおすことを迫られそうな状況ですが、上記のようなことが出来る方法があればご教示頂ければ幸いです。

【53104】Re:2つのファイルのマクロの同時実行
発言  ichinose  - 07/12/15(土) 9:36 -

引用なし
パスワード
   ▼yhar さん:
おはようございます。

>具体的に
コードも提示してください。
その際は、「シリアル通信により」の部分は、処理中のコードで置き換えて・・・。
そうすれば、沢山お方がみているのですから、いろんな知恵が投稿されるかもしれませんよ!!

>
>1.omote.xlsには、1秒単位で現在時間とカウントダウンを表示するプログラムを記述(Timerを用いてDoEventsで時間を取り込む)しておく。
>2.ura.xlsには、シリアル通信により3秒毎にデータ取り込み(これもTimer+DoEventsを使う)を行うプログラムを記述しておく。(※無限ループに近い動作)
>3.omote.xlsのプログラム実行の頭でApplication.Runでura.xlsのマクロを起動して2つマクロを同時に動かす。
>
>と言うものです。それぞれのマクロ単体では間違いなく動作することを確認済みですが、Application.Runの記述を活かしてやると
>
>●omote.xlsでは時計の表示が数秒置きになり、カウントダウンしなくなる。

Excelそのものを別インスタンスで起動し、ふたつのブックをその別々のインスタンスの
Excelで起動し、マクロを実行させます。

これだとうまくいくかもしれえませんよ!!
リソースは消費されるけどね!!

【53142】Re:2つのファイルのマクロの同時実行
質問  yhar  - 07/12/17(月) 11:19 -

引用なし
パスワード
   ichinoseさん
いつもありがとうございます。土日しっかり休んでしまい返信が遅れました。
「別のインスタンス」なる重要なヒントありがとう御座いました。

さて、シリアル通信用ファイルura.xlsのマクロをAuto_Open()に改名して、omote.xlsのマクロからura.xlsを別のインスタンスとして起動・実行するところまで来ました。

PCはこの用途専用に使うのでリソースの問題は無さそうです。

が、別のインスタンスとしたことで2つの疑問が発生してしまいました。
1.別インスタンスのセルを参照またはセルへの書込みが出来るのか?
2.別インスタンスのマクロを止めて、ファイルを閉じることが出来るのか?

出来そうな感じですが、過去ログや他の情報を含めて鋭意調査中です。もしもヒントが頂けるなら嬉しい限りですが… 

コードはあまりにもグリャグチャなので、いずれ整理してアップしたいと思っています。よろしくお願いします。

▼ichinose さん:
>▼yhar さん:
>おはようございます。
>
>>具体的に
>コードも提示してください。
>その際は、「シリアル通信により」の部分は、処理中のコードで置き換えて・・・。
>そうすれば、沢山お方がみているのですから、いろんな知恵が投稿されるかもしれませんよ!!
>
>Excelそのものを別インスタンスで起動し、ふたつのブックをその別々のインスタンスの
>Excelで起動し、マクロを実行させます。
>
>これだとうまくいくかもしれえませんよ!!
>リソースは消費されるけどね!!

【53143】Re:2つのファイルのマクロの同時実行
発言  Who Me?  - 07/12/17(月) 11:34 -

引用なし
パスワード
   >1秒単位で現在時間とカウントダウンを表示
このときに使うカウンタ変数を仮に i とするなら、もう1つ
>3秒毎
を検出するカウンタ変数(jなど)を用意すれば、omote.xlsのプログラム
のみで処理できそうな気がするのですが・・

【53144】Re:2つのファイルのマクロの同時実行
お礼  yhar  - 07/12/17(月) 13:44 -

引用なし
パスワード
   Who Me?さん
アドバイスありがとうございます。
通信するプログラムは「EasyComm」と言うフリーのプログラムを使って
オムロンの機器とRS232Cによるやり取りをしていますが、omote.xlsに
この通信部分の記述を取り込むと通信開始からデータ取得完了までの間
カウントダウンにタイムラグ(数秒)が生じてしまいます。

カウントダウンを正確にやりたいとなるとichinoseさんのアドバイスに
ある別のインスタンスでプログラムを実行することが解決の近道のよう
です。

上手く行ったらまた情報を共有したいと思いますのでよろしくお願いし
ます。

▼Who Me? さん:
>>1秒単位で現在時間とカウントダウンを表示
>このときに使うカウンタ変数を仮に i とするなら、もう1つ
>>3秒毎
>を検出するカウンタ変数(jなど)を用意すれば、omote.xlsのプログラム
>のみで処理できそうな気がするのですが・・

【53149】Re:2つのファイルのマクロの同時実行
質問  yhar  - 07/12/17(月) 17:22 -

引用なし
パスワード
   そろそろ私の能力では限界に来ているようで、コードを整理して教えを請いたいと
思います。

現時点での問題は
1.Myapp.Run "ura.xls!Module1.ECGetData" で ura.xlsのマクロを実行すると
  ura.xls が表示された状態で、omote.xls は、マクロの実行待ちの状態にな
  ってしまう。
2.ura.xlsで取得したデータを別インスタンスで開いているomote.xlsのあるセル
  へ書き込む方法がわからない。
の2点です。

2つのファイルをあらかじめ別インスタンスで開いておいて、それぞれのマクロを
ビジュアルベーシックエディタから起動すると思惑通りに動作します。この状態が
作れれば、あとは上記の2が解決すれば良いということになります。

omote.xlsには、以下のコードが書いてあり、シート上には「残時間」のカウント
ダウン値と現在時刻(秒単位表示)が表示されています。
表示画面のボタンを押すとblnStopがTrueとなりループから抜けます。

===============================================================

Public blnStop As Boolean
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Const SND_ASYNC = &H1

Sub Tact()
Dim Start, TactTime, Finish
Dim ZanJikan As Integer
Dim Dekidaka As Integer
Dim MotoSt As Worksheet: Set MotoSt = Worksheets("sheet1")

'Excelの別のインスタンスで「ura.xls」を起動してカウンタのデータを取り込む

On Error Resume Next
  Dim Myapp As Object
  Set Myapp = CreateObject("excel.Application")
  With Myapp
    .Visible = True
    .Workbooks.Open "C:\Documents and Settings\hoge\デスクトップ\ura.xls"
   End With
On Error GoTo 0

TactTime = MotoSt.Range("A2").Value '条件設定シートからタクトタイムを読み込む
ZanJikan = MotoSt.Range("A2").Value '残時間にタクトタイムをセットする

With Worksheets("表示画面")
  .Select
  .ScrollArea = "A1:A1"      '表示画面に移動して画面をスクロール出来ないようにする
End With

'以下は表示画面をフルスクリーンにして全てのメニューバーを見えなくする
  On Error Resume Next
  With Application
    .DisplayFullScreen = True
    .CommandBars("Full Screen").Visible = False
    .CommandBars("Worksheet Menu Bar").Enabled = False
  End With
  On Error GoTo 0
Worksheets("表示画面").Range("C2") = "" 'カーソルを見えないところに隠す

On Error Resume Next
    Myapp.Run "ura.xls!Module1.ECGetData" 'ura.xlsのマクロを実行する
On Error GoTo 0

blnStop = False
Do While Not blnStop '停止ボタンがクリックされるまで繰り返す
  
  Start = Timer            '現在の時刻を保存する
  Do While Timer < Start + 1  'タイマー(現在時刻)が1秒経過するまで制御をOSに渡す
    DoEvents
  Loop
  ZanJikan = ZanJikan - 1       '残時間を1秒毎にカウントダウンする。
  MotoSt.Range("B2") = ZanJikan    '残時間をシートに書き込む

  If ZanJikan <= 0 Then        'タクト残り時間が0になったら音で知らせる
    Call PlaySound("c:\ringin.wav", 0, SND_ASYNC) 'ここで音声ファイルを指定する!!!
        
    ZanJikan = TactTime       'タクト残り時間をタクトタイムに再設定する
  
  End If
Loop

On Error Resume Next
    Myapp.Save
    Myapp.Quit
On Error GoTo 0

End Sub

=============================================================
ura.xlsには下記のコードを記述して制御機器からのデータを取り込んでいます。

Sub ECGetData()

  Dim MotoSt As Worksheet: Set MotoSt = Worksheets("sheet1")
      
はじめ:

  Start = Timer            '現在の時刻を保存する
  Do While Timer < Start + 3  'タイマー(現在時刻)が3秒経過するまで制御をOSに渡す
    DoEvents
  Loop
    
  ★ここからポートを開いて実際に通信するルーチン★
  
'データを取得してアクティブセルに書き込みます.
  MotoSt.Range("B8") = resps   '受信データをセルB8に書き込み。シート上の関数で10進に変換してB6へ
  
  ★ここで通信ポートを閉じる★
  
  GoTo はじめ
    
End Sub

===========================================================

【53159】Re:2つのファイルのマクロの同時実行
発言  ichinose  - 07/12/17(月) 21:55 -

引用なし
パスワード
   ▼yhar さん:
こんばんは。

>そろそろ私の能力では限界に来ているようで、コードを整理して教えを請いたいと
>思います。
>
>現時点での問題は
>1.Myapp.Run "ura.xls!Module1.ECGetData" で ura.xlsのマクロを実行すると
>  ura.xls が表示された状態で、omote.xls は、マクロの実行待ちの状態にな
>  ってしまう。
>2.ura.xlsで取得したデータを別インスタンスで開いているomote.xlsのあるセル
>  へ書き込む方法がわからない。
>の2点です。

もうちょっと簡単な例題しましょう!!

ブックを二つ用意します。

1のブック dsptime.xls
 機能 ユーザーフォームに時間経過を表示する機能を持つ

2のブック setcell.xls
 機能 setcell.xlsの最左端シートのA列に1から20000までの数値を書き込む
    時間を計測し、セルB1に設定する


dsptime.xls

ユーザーフォーム(Userform1)を一つ用意してください。
  このUserform1には、
     Label1 開始時間の表示
     Label2 現在の時間を表示
  という二つのラベルを用意してください。

  ふたつのラベルには、hh:mm:ss形式で時刻を表示しますので、それに
  足りうる幅をラベルは有します。

コードです。


Thisworkbookのモジュール
'==================================================================
Sub set_proc()
  Application.OnTime Now(), "thisworkbook.dspform"
End Sub
'==================================================================
Sub dspform()
  UserForm1.Show
End Sub
'==================================================================
Sub unloadform()
'  Userform1の消去
  Unload UserForm1
End Sub
'==================================================================
Sub hideform()
'  時間表示を停止する
  UserForm1.dsp = False
End Sub
'==================================================================
Sub set_tm(rng As Range)
'  開始から、停止までの時間を指定されたセルに設定する 
  rng.Value = UserForm1.時間
End Sub

Userform1のモジュールに
'===================================================================
Option Explicit
Public dsp As Boolean
Public 時間 As Date
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'===================================================================
Private Sub UserForm_Activate()
  dsp = True
  Label1.Caption = Format([now()], "hh:mm:ss")
  Do While dsp = True
    Label2.Caption = Format([now()], "hh:mm:ss")
    DoEvents
    Sleep 300
    Loop
  時間 = CDate(Label2.Caption) - CDate(Label1.Caption)
  Me.Hide
End Sub
'===================================================================
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If CloseMode <> 1 Then
    Cancel = True
    End If
End Sub


setcell.xlsのコード
標準モジュールに
'=====================================================================
Sub main()
  Dim g0 As Long
  Dim ex As Application
  Dim dbk As Excel.Workbook
  Set ex = CreateObject("excel.application")
  Set dbk = ex.Workbooks.Open(ThisWorkbook.Path & "\disptime.xls")
  ex.Run dbk.Name & "!thisworkbook.set_proc"
  ThisWorkbook.Activate
  Worksheets(1).Activate
  Range("a:a").ClearContents
  For g0 = 1 To 20000
    With Cells(g0, 1)
     .Select
     .Value = g0
     End With
    Next
  Worksheets(1).Range("b1").NumberFormatLocal = "hh:mm:ss"
  ex.Run dbk.Name & "!thisworkbook.hideform"
  ex.Run dbk.Name & "!thisworkbook.set_tm", Worksheets(1).Range("b1")
  ex.Run dbk.Name & "!thisworkbook.unloadform"
  dbk.Close False
  ex.Quit
End Sub


上記のブックを同じフォルダ上に保存した後、
setcell.xlsだけを開いて、mainを実行して動作とコードを確認してください。

Application.Run でそのまま目的のコードを実行させると
同期が取れてしまいます。

非同期に作動するように工夫することがポイントですよ!!

【53166】Re:2つのファイルのマクロの同時実行 ...
発言  ichinose  - 07/12/18(火) 7:41 -

引用なし
パスワード
   おはようございます
訂正です。

>setcell.xlsのコード
>標準モジュールに
>'=====================================================================
>Sub main()
>  Dim g0 As Long
>  Dim ex As Application
>  Dim dbk As Excel.Workbook
>  Set ex = CreateObject("excel.application")
  Set dbk = ex.Workbooks.Open(ThisWorkbook.Path & "\disptime.xls")
'                             ↑dsptime
'          変更してください
>  ex.Run dbk.Name & "!thisworkbook.set_proc"
>  ThisWorkbook.Activate
>  Worksheets(1).Activate
>  Range("a:a").ClearContents
>  For g0 = 1 To 20000
>    With Cells(g0, 1)
>     .Select
>     .Value = g0
>     End With
>    Next
>  Worksheets(1).Range("b1").NumberFormatLocal = "hh:mm:ss"
>  ex.Run dbk.Name & "!thisworkbook.hideform"
>  ex.Run dbk.Name & "!thisworkbook.set_tm", Worksheets(1).Range("b1")
>  ex.Run dbk.Name & "!thisworkbook.unloadform"
>  dbk.Close False
>  ex.Quit
>End Sub
>
>
>上記のブックを同じフォルダ上に保存した後、
>setcell.xlsだけを開いて、mainを実行して動作とコードを確認してください。
>
>Application.Run でそのまま目的のコードを実行させると
>同期が取れてしまいます。
>
>非同期に作動するように工夫することがポイントですよ!!

【53168】Re:2つのファイルのマクロの同時実行 ...
発言  ichinose  - 07/12/18(火) 8:28 -

引用なし
パスワード
   Win2000、Excel2002では、投稿したコードで一見すると、正常に作動していますが、
いくつか不可解な現象も確認しました。

1 作動中、時間表示のユーザーフォームを非アクティブにすると、
  正しく計測時間が取得できない。
2 同じく上記の動作でオートメーションエラーが発生する場合がある。

3 Thisworkbookに付加した独自のプロパティやメソッドが使用できない。
  仕方がないのでRunメソッド使いましたが、本来は使いたくなかった。
  (ex.Run dbk.Name & "!thisworkbook.set_proc"など)
 (エラーになります。そんなメソッドはありません と言う主旨のエラーです)
  不思議なことにVBSからは、dbk.set_procで作動します。

出かけてしまうので、要点だけですが、 いくつか問題がありそうです。

他のバージョンではどうなるか確認できたら教えてください

もうちょっと調べてみます。

【53169】★まずは御礼★ 追伸
お礼  yhar  - 07/12/18(火) 8:45 -

引用なし
パスワード
   ichinoseさん
簡単な例題、アドバイスに動作確認までありがとうございます。
私も明日以降、一週間ばかり検証の出来る環境にいなくなりますので返信が
出来なくなります。まずはここまでの御礼まで…

取り合えずユーザーさん(お客さんじゃないです)の希望納期の今週中には
間に合いそうもないので素直に謝ることにします。

不可解な現象を回避しながらコードを書くのも何かRPGのようで楽しいの
ですが最後まで理由が分からないと言うのは気分が優れませんね?

ありがとうございました。

▼ichinose さん:
>Win2000、Excel2002では、投稿したコードで一見すると、正常に作動していますが、
>いくつか不可解な現象も確認しました。
>
>1 作動中、時間表示のユーザーフォームを非アクティブにすると、
>  正しく計測時間が取得できない。
>2 同じく上記の動作でオートメーションエラーが発生する場合がある。
>
>3 Thisworkbookに付加した独自のプロパティやメソッドが使用できない。
>  仕方がないのでRunメソッド使いましたが、本来は使いたくなかった。
>  (ex.Run dbk.Name & "!thisworkbook.set_proc"など)
> (エラーになります。そんなメソッドはありません と言う主旨のエラーです)
>  不思議なことにVBSからは、dbk.set_procで作動します。
>
>出かけてしまうので、要点だけですが、 いくつか問題がありそうです。
>
>他のバージョンではどうなるか確認できたら教えてください
>
>もうちょっと調べてみます。

【53185】Re:2つのファイルのマクロの同時実行
発言  ichinose  - 07/12/18(火) 21:27 -

引用なし
パスワード
   こんばんは。

VBSとVBAを組み合わせてみました。


>
>ブックを二つ用意します。
>
>1のブック dsptime.xls
> 機能 ユーザーフォームに時間経過を表示する機能を持つ
>
>2のブック setcell.xls
> 機能 setcell.xlsの最左端シートのA列に1から20000までの数値を書き込む
>    
3VBSスクリプト vbstest.vbs
  機能 setcell.xlsの最左端シートのA列に1から20000までの数値を書き込む時間を     計測し、setcell.xlsの最左端シートのセルB1処理時間を出力する  

>
>dsptime.xls
>
>ユーザーフォーム(Userform1)を一つ用意してください。
>  このUserform1には、
>     Label1 開始時間の表示
>     Label2 現在の時間を表示
>  という二つのラベルを用意してください。
>
>  ふたつのラベルには、hh:mm:ss形式で時刻を表示しますので、それに
>  足りうる幅をラベルは有します。
>
>コードです。
>
>
>Thisworkbookのモジュールに

Option Explicit
Public 時間 As Date
Sub set_proc()
  Application.OnTime Now(), "thisworkbook.dspform"
End Sub
'==================================================================
Sub dspform()
  UserForm1.Show
End Sub
'==================================================================
Sub unloadform()
'  Userform1の消去
  Unload UserForm1
End Sub
'==================================================================
Sub hideform()
'  時間表示を停止する
  UserForm1.dsp = False
End Sub
'==================================================================
Sub set_tm(rng As Range)
'  開始から、停止までの時間を指定されたセルに設定する
  rng.Value = 時間
End Sub

>
Userform1のモジュールは、ちょっと変更。
>'===================================================================
Option Explicit
Public dsp As Boolean
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const temae_set = -1
Const hyoji = &H40
Const nonesz = &H1
Const nonemv = &H2
'===================================================================
Private Sub UserForm_Activate()
  Dim hwnd As Long, ret As Long
  hwnd = FindWindow("ThunderDFrame", Me.Caption)
  ret = SetWindowPos(hwnd, temae_set, 0, _
     0, 0, 0, hyoji Or nonemv Or nonesz)
  dsp = True
  Label1.Caption = Format([now()], "hh:mm:ss")
  Do While dsp = True
    Label2.Caption = Format([now()], "hh:mm:ss")
    DoEvents
    Sleep 300
    Loop
  ThisWorkbook.時間 = CDate(Label2.Caption) - CDate(Label1.Caption)
  Me.Hide
End Sub
'===================================================================
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If CloseMode <> 1 Then
    Cancel = True
    End If
End Sub


>setcell.xlsのコード
標準モジュールから、Thisworkbookのモジュールに変更

'=====================================================================
Option Explicit
Sub set_cell()
  Dim g0 As Long
  ThisWorkbook.Activate
  Worksheets(1).Activate
  Range("a:a").ClearContents
  For g0 = 1 To 20000
    With Cells(g0, 1)
     .Select
     .Value = g0
     End With
    Next
End Sub


最後にvbstest.vbsのコード
'=====================================================================
Dim g0 ,ex,dbk,fs
set fs=createobject("scripting.filesystemobject")
with CreateObject("excel.application")
  .visible=true 
  with .workbooks.Open(fs.GetParentFolderName(wscript.scriptfullname) & "\setcell.xls")
    Set ex = CreateObject("excel.application")
    Set dbk = ex.Workbooks.Open(fs.GetParentFolderName(wscript.scriptfullname) & "\dsptime.xls")
    dbk.set_proc
    .set_cell
    .worksheets(1).Range("b1").NumberFormatLocal = "hh:mm:ss"
    dbk.hideform
    dbk.set_tm .worksheets(1).Range("b1")
    dbk.unloadform
    dbk.Close False
    ex.Quit
    end with
  end with    
set ex=nothing
set dbk=nothing
set fs=nothing


>
上記のブックとVBSスクリプトを全て同じフォルダ上に保存した後、
vbstest.vbsを実行してみてください。
尚、この投稿からコピーする場合は、VBSコードの

  .visible=true 

頭の空白が全角になっているので、半角に修正して保存しなければならないので
注意が必要です(全角のままだとエラーになります)

この手のことを実現するには、結構、工夫が必要ですね!!

試してみてください。
(この場合は、時間表示のユーザーフォームが非アクティブにしても
 時間は、正常に取得できました)

【53430】【御礼】2つのファイルのマクロの同時実...
お礼  yhar  - 08/1/10(木) 16:55 -

引用なし
パスワード
   新年あけましておめでとうございます。今年もよろしくお願いします。
やっと、自由に動ける状態となり色々試しております。

ここまで教えて頂いた方法の組合せで、細かい不具合は別として何とか
なりそうな状況です。お客さんからの要求も変わりつつあるので機能を
整理すれば行けるだろうと見積もっています。

その上にVBA+VBSの組合せと言う新しいヒントも頂き楽しみが増
えました。

本当にギリギリまでお考え頂きありがとう御座いました。まだ、質問が
あるのですが整理の意味も兼ねて近々に別のスレッドを立てます。

ありがとうございました。

4949 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free