前回の質問に続く内容なのですが、Excelの起動は
おかげ様でうまくいきました。
が、直後のコーディングが???
Excelを起動後にモーダルで終了を待ちたいのですが
どうすればよいのか分かりません、HELPをめくっている際にちらっと見た覚えはあるのですが、それがどこにあったのか探せなくなりました。
助けてください!

このQ&Aに関連する最新のQ&A

A 回答 (1件)

はいはい(笑)


#19166の続きってことですので、Excelを使うのに New Excel.Application で、Excelのインスタンスを作成しているわけですよね。
それでしたら、ExcelApp変数の Visibleプロパティを見れば動いてるかどうか分かるみたいです。

以下、プログラム例です。

'*-*-*-この部分はモジュールの先頭部分に記述*-*-*-
'寝る為のAPI Call SLEEP(寝るミリ秒数)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'*-*-*-ここまで*-*-*-

Private Sub Command2_Click()
  Dim ExcelApp As Excel.Application
  'Excelのインスタンスを作成して表示
  Set ExcelApp = New Excel.Application
  ExcelApp.Visible = True
  
  'Excelが終了されるとVisibleがFalseになる
  'ので、それまで待機
  Do
    Call Sleep(250) 'しばらく寝る
    DoEvents
  Loop While ExcelApp.Visible = True
  
  'Excel終了時の処理
  MsgBox "Excelが終わったよん"
  
  'インスタンスの開放
  Set ExcelApp = Nothing
End Sub


*****************************************
尚、Shellコマンドを使って起動した場合には、
Dim TaskID as long
TaskID=Shell("Excel.EXE …")
on error resume next
do
 Err.Clear
 AppActivate TaskID
Loop Until Err<>0
Msgbox "Excelが終わったよ"
みたいな感じで、アプリの起動を監視できます


返事は一回!
    • good
    • 0
この回答へのお礼

まっことおおきに!(土佐弁どえす)
うまくいきました。
非常に助かりました。
ARCさん、師匠と呼ばせてください(笑)

お礼日時:2000/12/19 09:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q今度10数名の研修が終了しますが、終了後の意見交換などのコミュニティの

今度10数名の研修が終了しますが、終了後の意見交換などのコミュニティの場を、ネット上に設けたいと考えております。それには(SNS やブログ)などが考えられると思いますが、このようなコミュニティの形成にはどちらが向いているのでしょうか?
私も普通のブログは経験があるのですが、詳しいことは分かりません。またSNSはやったことがありません。皆さまのご意見をお聞かせいただければと存じます。

(SNS やブログ)にもいろいろあるようですが、どこか適当なサービスがご存知でしたら教えていただけますでしょうか。よろしくお願いいたします。

Aベストアンサー

ブログの場合、アカウントを持っている人しか記事が書けないので、そこに他の人がコメントを付ける形になります。別の人もブログのアカウントを作ればそこでまたコメントを付ければ良いのですが、それぞれが別のブログを持つことになります。全員のブログをチェックしないと誰が何を記事にしたか判らないのと、横断的なコミュニケーションが難しいと思います。

SNSの場合、横の繋がりを登録しますので、誰かが記事(日記)を書くと判るようになっています。個人情報がグループ化された人全員に見えてしまうので、選定したSNSを既に個人で利用している人は困惑するかもしれません。他の利用者からグループの存在は見えるようになっています。

So-netがグループ向けに閉じられたSNSを作れるサービスをしていましたが、現在はサービス終了がアナウンスされています。もしかしたら他に同等の物があるかも知れません。

参考URL:http://www.so-netsns.jp/

QExcel-VBAのコーディングを教えて下さい。

A列1行目から、2行目3行目・・・に「今日は」「とても」「天気です。」の様な文章が入っていて、「とても」「天気です。」は文字色が白になっています。
B列1行目に「今日は」と入力を完了したら、A2の「とても」が指定秒だけ黒色になりその後白色に戻ります。
B列2行目に「とても」を入力すると、A3の「天気です。」が指定秒だけ黒色になりその後白色に戻ります。
というようにしたいのですが、このようなマクロのコーディング例が欲しいのです。
何に使うかというと、もちろんキーボードレッスンです。
宜しくお願いします。

Aベストアンサー

こんばんは。

#3 で書いたWendy02 です。もう一度、タイミングについて考えてみました。DoEvents が、多少、誤動作をさせるようですが、これなら、入力と色消しのタイミングのズレが解消されているはずです。


'<ThisWorkbook>
Option Explicit
Public WithEvents mySh As Worksheet
Private Sub mySh_Change(ByVal Target As Range)
 With Target.Cells(1, 1)
  If .Offset(, -1).Value = .Value Then
    .Offset(1, -1).Font.ColorIndex = -4105
    CheckTime 1000
    .Offset(1, -1).Font.ColorIndex = 2
   ElseIf .Value <> Empty Then
    .Select
    Beep
    .Offset(, -1).Font.ColorIndex = 3
    CheckTime 1000
    .Offset(, -1).Font.ColorIndex = 2
  End If
  If .Row >= Range("A65536").End(xlUp).Row Then
     If .Value = .Offset(, -1).Value Then
     MsgBox "終了です。"
     Call ThisWorkbook.s_TestEnd
     End If
  End If
  End With
End Sub

Sub KeyBoardTest()
'ボタンの起動
With Worksheets("Sheet1")
 .Range("A1", Range("A65536").End(xlUp)).Font.ColorIndex = 2
 .Range("B1", Range("B65536").End(xlUp)).ClearContents
 .Range("B1").Select
 Beep
 .Range("A1").Font.ColorIndex = -4105
 CheckTime 1000 '1000分の1秒
 .Range("A1").Font.ColorIndex = 2
 .Range("B1").Activate
 Set mySh = Worksheets("Sheet1")
 Application.EnableEvents = True
End With
End Sub
Sub s_TestEnd()
 Set mySh = Nothing
End Sub
Sub CheckTime(argInterval As Integer)
Dim myStartTime As Double
Dim myTimer As Double
Dim myInterval As Integer
myStartTime = Timer()
myInterval = argInterval / 1000
 myTimer = Timer()
  While Timer() - myTimer < myInterval
   DoEvents
  Wend
End Sub

'<Sheetモジュール>
'コントロールツールボタン
Private Sub CommandButton1_Click()
 Call ThisWorkbook.KeyBoardTest
End Sub

こんばんは。

#3 で書いたWendy02 です。もう一度、タイミングについて考えてみました。DoEvents が、多少、誤動作をさせるようですが、これなら、入力と色消しのタイミングのズレが解消されているはずです。


'<ThisWorkbook>
Option Explicit
Public WithEvents mySh As Worksheet
Private Sub mySh_Change(ByVal Target As Range)
 With Target.Cells(1, 1)
  If .Offset(, -1).Value = .Value Then
    .Offset(1, -1).Font.ColorIndex = -4105
    CheckTime 1000
    .Offset(...続きを読む

QSo-netSNSの代わりになりうるサービス(ML付き希望)

So-netのSNSレンタルサービスが終了することになってしまいましたが、代わりになりうる無料サービスを探しています。
無料のSNSレンタルは探せば色々あるのですが、出来れば、So-netSNS同様、コミュニティにML機能が付属している所が希望なのですが、どこかにないでしょうか。

Aベストアンサー

コメントありがとうございます。
それで、そ~しゃるぱ~くはお眼鏡にかなわなかったと?

逆にFreeMLは以前、MLとして使ったことはありますが、コミュニティ機能としてどれくらい要望を満たすのか不明。

参考URL:http://www.freeml.com/

QExcel出力後のExcelの起動について

Vb側からデータをExcelに出力し、その画面を表示させたまま
出力したExcelを確認しようと思ったところ、Excelは起動するものの
シートが表示されない現象が起こりました。
出力後のExcelの終了(解放?)のロジックは下記の通りです。

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add


Sheetへの出力処理


Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing

この現象の回避方法がありましたらご教授ください。

Windows2000
Vb6.0 SP5
Excel2000

Vb側からデータをExcelに出力し、その画面を表示させたまま
出力したExcelを確認しようと思ったところ、Excelは起動するものの
シートが表示されない現象が起こりました。
出力後のExcelの終了(解放?)のロジックは下記の通りです。

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add


Sheetへの出力処理


Set x...続きを読む

Aベストアンサー

多分、もう解決されているかと思いますが・・・。
簡単に実験してみました。
ステップ実行して、1ステップごとにExcelの状態を確認しました。

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = New Excel.Application
↑影でこっそりExcelが起動している様子です。。。

xlApp.Visible = True
↑Excelがシート無しの灰色の状態で表示されます。

Set xlBook = xlApp.Workbooks.Add
↑テンプレのとおりのシートが作成されます。
 (デフォルトだとBook1.xlsでシートが3枚)

Set xlSheet = xlBook.Worksheets.Add
↑シートが1枚追加されます(いいのかな・・・)

xlSheet.Range("A1").Value = "Test Data"
↑追加したシートのセルA1に"Test Data"が入力されます。

xlBook.SaveAs "test.xls"
↑デフォルトのパス上にtest.xlsが作成されます。

xlBook.Close
↑Excelがシート無しの灰色の状態に戻ります。

xlApp.Quit
↑Excelが終了します(Alt+Tabで表示されなくなります)

Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing

1.上記を実行後、作成した"test.xls"を開くと、ちゃんと表示されました。。。
2.ためしにNothingを全部コメントにして実行しても、ちゃんと表示されました。
3."xlBook.Close"と"xlApp.Quit"だけをコメントにしたところ、Excel(test.xls)は表示されたままでした。

こんな感じでした。

私の場合、オバケが残る事象が出たら、面倒でもPCを再起動してからソースを修正し、再テストに臨みます。
何度ソースをいじってもオバケが解消されないとき、再起動したら直ったケースがあったので。。。

リンクはAccessに関してですが、Nothingについての考え方(?)が載ってます。

以上、ご参考まで。

参考URL:http://www7.big.or.jp/~pinball/discus/access/91106.html

多分、もう解決されているかと思いますが・・・。
簡単に実験してみました。
ステップ実行して、1ステップごとにExcelの状態を確認しました。

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = New Excel.Application
↑影でこっそりExcelが起動している様子です。。。

xlApp.Visible = True
↑Excelがシート無しの灰色の状態で表示されます。

Set xlBook = xlApp.Workbooks.Add
↑テンプレのとおりのシートが作成されます。
 (デフォ...続きを読む

Qどんな趣味の人も楽しめる無料SNSを教えて下さい

Yahoo Daysもgooホームも終了が決定し、友達といっしょに引越しできる似たような感じのSNSを探しています。

友達の要望でmixi facebook twitter、GREE以外のところでお願いします。

条件は

(1) 無料であること
(2) ゲーム系、子育て系など何かに特化したところではないこと。
  (雑談が楽しみたいのです)
(3) ひとことに対するコメントが一覧になって見られること
(4) 本名を表示名にしなくていいこと

どうぞよろしくお願いします!

Aベストアンサー

Googleのバズではダメかな?

QNotepad起動のイベントでEXCELを起動したいのですが、

EXCEL VBAでBOOKを開くと、メモ帳を起動するには、
Private Sub Workbook_Open()
Dim rc As Long
rc = Shell("notepad.exe", vbMaximizedFocus)
End Sub
のようにbookを開くイベントでshell関数からNotepadを起動できますが、
notepad起動により、EXCELを立ち上げたいのですが、方法が解りません。
多分、メモ帳起動をWindowsがイベント検出する事でEXCELを起動するのでしょうが、
WindowsのAPIを勉強し始めたばかりなので、解決の糸口がつかめません。
ずるいようですが、
1)実行ステートメントを知りたい。(即、動かしたい。)
2)本格的に、自力で理解してステートメントを書くための勉強法を教えて欲しい。
例えば、参考書名などお教えいただけると助かります。
EXCEL VBAは昨年夏から勉強し始めて、今年に入ってからWin APIの勉強中です。
作業環境は、Windows10、EXCEL2016を使ってます。

EXCEL VBAでBOOKを開くと、メモ帳を起動するには、
Private Sub Workbook_Open()
Dim rc As Long
rc = Shell("notepad.exe", vbMaximizedFocus)
End Sub
のようにbookを開くイベントでshell関数からNotepadを起動できますが、
notepad起動により、EXCELを立ち上げたいのですが、方法が解りません。
多分、メモ帳起動をWindowsがイベント検出する事でEXCELを起動するのでしょうが、
WindowsのAPIを勉強し始めたばかりなの...続きを読む

Aベストアンサー

こんにちは。

実用に足るかどうかは分かりませんが、Microsoft Application Compatibility Tool Kits (ACT)の中に、一般のアプリに、ラッパーさせて他の機能を持たせるツールがありますね。早い話が、アプリの改造なのですが、特に、Resource Hacker などとは違い本体を改造させない所がミソだったりします。いわゆるハッキングをしたいとおっしゃっているようですが、それなりの書籍は、三省堂の本店などにも出ていた記憶があります。でも、VBAからの延長では話にならないと思います。私は、見よう見まねで、教わったものだけは可能にしていますが、それ以外は、うまく使えません。以下の場合は、なぜか、機能落ちしてしまいます。

http://www.atmarkit.co.jp/fwin2k/tutor/wcompat02/wcompat02_01.html
私は、このツールを今ひとつ使いこなせずに、成功していません。

Win APIで、WindowEvent にフックさせて起動させるっていうのは、SetWindowsEventHook でしょうけれども、それは使ったことはありませんね。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644990(v=vs.85).aspx

>デフォルトの無題 メモ帳が開いて、同時にEXCELを起動する方法が解りません。
具体的には、#1さんの話とまったく同じなのですが……。
実際、そういうお話なら、怖い話ですが、WScript で偽装させてしまえば済みます。他人の環境なら、アンチウィルスに引っかかってしまうとは思いますが。WScript の怖さっていうのは、その万能性です。単に、Script だけで治まってはいないのです。

しかし、あまり本気にはしないでほしいのですが、自分でメモ帳を作る方法もありますね。(^^;
プログラムの勉強の一つに、メモ帳の作成というものがありますし。

こんにちは。

実用に足るかどうかは分かりませんが、Microsoft Application Compatibility Tool Kits (ACT)の中に、一般のアプリに、ラッパーさせて他の機能を持たせるツールがありますね。早い話が、アプリの改造なのですが、特に、Resource Hacker などとは違い本体を改造させない所がミソだったりします。いわゆるハッキングをしたいとおっしゃっているようですが、それなりの書籍は、三省堂の本店などにも出ていた記憶があります。でも、VBAからの延長では話にならないと思います。私は、見よう見まねで、教...続きを読む

Qジャンル特化型のSNSを立ち上げたい

ミクシィとかグリーのようなオールラウンドなSNSではなくて、あるジャンルに特化したSNSを立ち上げたいと考えています。

特化型のSNSでうまく行きそうなジャンルや、上手く行っているSNSがあれば教えてください。

Aベストアンサー

ただSNSを構築するだけなら簡単ですが、ミクシィやGREEとの違いを鮮明にしないと、集客が厳しくなります。

ミクシィのような大手SNSのコミュニティでは加入しづらいジャンルを狙うといいのではないでしょうか。

ゲイのSNS
http://gaycom.jp/xc/menu/top

キャバクラのSNS
http://cabanet.jp/

とか、ですね。

参考URL:http://gaycom.jp/xc/menu/top,http://cabanet.jp/

QExcel-VBAで新しいシート挿入直後にシートの名前を変更する。

お世話になります。
Excel-VBAで、Sheets.Addメソッドで、sheetを挿入すると、都度sheet1とかsheet2とか、何回目のシート挿入を実行したのかによって勝手にsheet番号を振ってワークシートが出来ると思いますが、挿入直後にシートの名前を変更するのはどういうコードを書けば良いのでしょうか?

Aベストアンサー

ActiveSheet.Name = "シート名"
でどうでしょう。

Q「教えて!goo」はSNSですか?

WindowsOSとは関係ないのですが
SNS(ソーシャル・ネットワーキング・サービス)という言葉をよく見かけます。
ミクシイがその代表的なものとして常に紹介されています。
私はミクシイ会員ではないので、実感としてSNSのことが解りませんが
「教えて!goo」は次のどれに該当するものなのでしょうか?
1. まさにSNSである。(SNSそのものである)
2. SNSとも言える。(広義のSNSである)
3. SNSとは言えない。(SNSという分類には入らない)
4. 一般の掲示板である。
以上です。

Aベストアンサー

3.ですかね。

掲示板と勘違いしている方、結構いるんですよね……
会員間の歓談の場と勘違いしているような質問をたまに見かけますね。

ソーシャル・ネットワーキング・サービス - wikipedia
http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%AB%E3%83%BB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AD%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9
参考にどうぞ。

Q【HELP!!】Excelから保存したtxtデータに「改行コード」を入れない方法(VBA)

あるデータをExcelマクロを使って生成しています。

txtに保存するときに、120バイトで揃えたいのですが、データに改行コードが入る為120バイトを超えてしまうようです。

データは最大200行。

Excelのセルで生成されたデータはそのままに、改行コードのみをtxtの段階で削除する方法を教えてください!

とっても困っています・・・

ちなみに・・・
ActiveWorkbook.SaveAs Filename:="C:\MIKAZUKI.txt", FileFormat:=xlUnicodeText _
, CreateBackup:=False
が今のコードです。

不足な資料等があればジャンジャン送ります。

Aベストアンサー

固定長120バイトのデータを、改行コードなしで羅列するという意味ですか。COBOLプログラムで読み込むのでしょうか?

SaveASメソッドではFileFormatプロパティで「改行なし」を選択できないと思います(できたら不勉強ですが)。WIRTE命令かFSOオブジェクトを使用すれば可能です。

貼り付けたURLを参考になさってください。私がなまじマクロを書くより的確な例が掲載されています

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_055.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング