エクセルのツールバーにボタンを2つ作って他のブック1,2のマクロをそれぞれ割り当てました。
エクセルの表を開いておいてツールバーから
マクロ1(編集・出力)を呼び出すとブック1がアクティブになってしまい真っ白のシートが見えてしまいます。
もう一方のブック2のマクロ2はフォームを表示するマクロですがそちらはバックに隠れています。
以前同様にシート上のCH(13)を消すマクロを使っていた時もバックに隠れていました。
Application.ScreenUpdating = Falseを入れましたが一瞬ですがやはりアクティブになります。
見た目も悪いので表示したくないし、ブック1と2で動作が違う理由がわかりません、
マクロ1はこれです。
ブック1のcreateというマクロを使うのが目的です。
Sub Output()
Application.ScreenUpdating = False
Call create
MsgBox "完了しました。"
ThisWorkbook.Close
End Sub
マクロ2
Sub Form_Open()
Frm_Form1.Show vbModeless
End Sub
つまらない質問ですが気になるのでよろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは。
Macro1 は、このようにすれば、何も表示せずに出来ます。
このマクロは、途中で中止しないようにしてください。Excelが残ってしまいます。もし、残ってしまったら、タスクマネージャを立ち上げて、プロセスで、削除してください。
>以前同様にシート上のCH(13)
もしかしたら、Chr(10) のことではないでしょうか?
Sub Test1()
Dim bkName As String
Dim xlApp As Object
Dim wb As Workbook
Dim sh As Worksheet
'ブックの名前を入れます。
bkName = ThisWorkbook.Path & "\TEST1.XLS"
If Dir(bkName) = "" Then
MsgBox "該当するブックがありません。", 48
Exit Sub
End If
On Error GoTo ErrHandler
Set xlApp = CreateObject("Excel.Application")
With xlApp
Set wb = .Workbooks.Open(bkName)
Set sh = wb.Worksheets("Sheet1")
.DisplayAlerts = False
sh.Cells.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
.DisplayAlerts = True
Set sh = Nothing
wb.Close True
Set wb = Nothing
xlApp.Quit
End With
ErrHandler:
Set xlApp = Nothing
End Sub
マクロ2のほうは、
たとえば、通常は、こんな風でよいはずですが、ちょっとはっきりしたことが言えません。
Me とは、UserForm のことです。
Private Sub UserForm_Activate()
AppActivate Me.Caption
End Sub
この回答への補足
Wendy02様
回答ありがとうございます。
>もしかしたら、Chr(10) のことではないでしょうか?
すいません、目茶区茶いい加減な記憶で書いてしまったようです。
コードを記述して頂いたのに
理解力が無くて申し訳ありませんが教えて頂いたコードは
Test1というマクロが記述してあるブックが主となりTEST1というブックを開いて処理をする形式でしょうか。
私の希望はエクセルの表(ブックは何十とあります)を処理する際にツールバーのボタンを押せば
ブック1のマクロ1が仕事をしてくれるという形式ですがどう組み込めばよろしいのでしょう。
ツールバーのボタンを押すとブック1のシートが画面に表示されます。
処理が終わるとクローズさせているので元の表に表示が戻ります。
同様に作った前回及びブック2は表示されなかったのに何故ブック1が表示されてしまったのかその理由がわかりません。
シートが表示されないようにするのは普通にマクロを作るのでは無く
xlAppというオブジェクトの形で呼び出すように作らなくてはいけないのでしょうか。
No.2
- 回答日時:
こんばんは。
>Test1というマクロが記述してあるブックが主となりTEST1というブックを開いて処理をする形式でしょうか。
それは、関係ないです。すみません。名称は何でもよいのですが、私は、以下の二点を
避けたかったからです。
>Sub Output()
ひとつは、2バイト文字であること。Excel VBEditor のバグか分かりませんが、私のVBEditor(Off 2003-すべて共通)だけかもしれませんが、2バイト文字の検索に不具合があります。もうひとつは、基本形の名前だからです。(これは、私の単なるスタイルなのですが、
読みにくかったりするからです)
>シートが表示されないようにするのは普通にマクロを作るのでは無く
>xlAppというオブジェクトの形で呼び出すように作らなくてはいけないのでしょうか。
別に、何々しなければならないというわけではなくて、ひとつのこだわりの中では、そうしたほうがよいということだけです。実際に、私自身が、オートメーション・オブジエクト(xlApp) を作って処理するということはありません。それ自体が、チラチラ表に出てこようが、あまり気にしたことがありません。すべて、裏方でしようとしたら、そうなるということです。あまり多くはありませんが、こういうやり方を好む人もいるようです。
>私の希望はエクセルの表(ブックは何十とあります)を処理する際にツールバーのボタンを押せばブック1のマクロ1が仕事をしてくれるという形式ですがどう組み込めばよろしいのでしょう。
私は、あまり固定ファイルに対して、ツールバーのボタンに組み込むということはしないのですが、マクロは、「個人用マクロブック(Personal.xls)」の標準モジュールに置きます。
表示-ツールバー-コマンド-
「分類」の中から、マクロを選択
ユーザー設定で、ニコちゃんマークで、空いているツールバーに貼り付けて
そのまま、ボタン(CommandButton)を右クリック
-マクロの登録
-ボタンイメージの変更(アレンジする場合)
などとしてください。
ファイルの選択の場合、固定式の場合は、ループを使わないといけないと思います。
たとえば、
MyBooks = Array("Test1.xls","Test2.xls","Test2.xls","Test2.xls")
として、
For Each fn in MyBooks
fn '<- ファイル名(ただし、パスがありませんから、元に書き込むか、別に置いてください
Next fn
Wendy02様
懇切丁寧な回答ありがとうございます。
>すべて、裏方でしようとしたら、そうなるということです.
>あまり多くはありませんが、こういうやり方を好む人もいるようです。
私はチラッとでも画面に出したく無い性格ですの少数派でしょうか。
お教えいただいたxlAppでPersonal.xlsで行いたいと思います。
また何かありましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/09 12:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセルの、記録を終了したマ...
-
エクセルで、「いいね」のよう...
-
エクセルの表を複数枚印刷した...
-
エクセル マクロ名にブック名...
-
Excelのマクロの復元
-
別シートのマクロボタンをマク...
-
複数のマクロボタンをまとめて...
-
TeraTermマクロでctrl+alt+del...
-
エクセル ボタンに設定したマク...
-
個人用マクロのショートカット...
-
(Excel VBA)シートコピー時マ...
-
Excelマクロで、稼働中のマクロ...
-
Excelのマクロ名の並び順の法則...
-
Excel:マクロを消す方法教えて...
-
エクセルでマクロ(Excel 4.0)...
-
エクセルからワードのマクロを...
-
マクロ実行ボタンを自動削除したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
エクセルの、記録を終了したマ...
-
エクセル マクロ名にブック名...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
エクセルマクロで、別のブック...
-
エクセル ボタンに設定したマク...
-
エクセルでマクロ(Excel 4.0)...
-
別シートのマクロボタンをマク...
-
Excelマクロで、稼働中のマクロ...
-
マクロをマクロを使ってコピー...
-
(Excel VBA)シートコピー時マ...
-
エクセルで明日の日付を表示す...
-
なぜマクロの記録がなくなって...
-
エクセルでマクロを確認できな...
-
Excelのマクロ名の並び順の法則...
-
マクロ実行ボタンを自動削除したい
おすすめ情報