[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『いつも特定のファイルが開いてしまいます』(3年B組)
いつもお世話になっております。
ある印刷のマクロを起動させた時に
いつも全く関係のない特定のファイルが開いてしまいます。
ファイルが開くだけでなので毎回その関係のないファイルを閉じて終了させますが。。
必ずそのマクロを起動させると同じファイルが開くので煩わしいです。
何が原因かわからないので、ご存知の方がいらっしゃったらご指導願います。
何卒よろしくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
[ツール]-[マクロ]-[Visual Basic Editor] を選択し、
ThisWookbookをみてほしい。
(K) 2015/03/03(火) 16:07
マクロを開いて確認するのは変わらないので…。
(K) 2015/03/03(火) 16:09
ThisWookbookの中には何も入ってなさそうです。
(3年B組) 2015/03/03(火) 16:18
なんで、ThisWookbookに特定できるのかわからんけど、 どこかに、特定ファイルを開くようなコードが書いてないですか? もしくは、「ある印刷のマクロ」はどこに書いてあるんですか? ひょっとしたら、特定ファイルに書いてあるのでは? 特定ファイルに書かれているのなら、特定ファイルが起動しますよ。 BJ
印刷のマクロの起動方法から辿れば見つかると思います。
(K) 2015/03/03(火) 16:35
詳しい症状は
11111.xlsm というファイルで作業中に「印刷」マクロを起動させると
毎回必ず
99999.xlsm というファイルが勝手に開いてしまいます。
どのファイルの時も99999.xlsmが開きます。
元は
11111.xlsmなどのファイルは99999.xlsmのファイルを別名保存して使っています。
11111.xlsmを原本として他のファイルを作成する時は、この99999ファイルを別名保存して利用しております。
原本ファイルのマクロを保存する場所が間違っていたのでしょうか??
マクロは初心者です。
いつもこちらの掲示板で教えて頂きながらマクロを利用しております。
マクロをコピーさせて頂きます。
↓
Sub 現在のページを印刷orPDF変換()
Dim myP As Long
myP = 現在のページ 印刷orPDFを選択 myP, myP
End Sub
Private Sub 印刷orPDFを選択(開始P As Long, 終了P As Long) Dim msg As String Dim ファイル名 As String
msg = "印刷ならば「はい」を、PDFなら「いいえ」をクリック" ファイル名 = Format(Now, "yymmdd_hhmmss") & ".pdf"
With ActiveSheet If MsgBox(msg, vbYesNo) = vbYes Then .PrintOut From:=開始P, To:=終了P Else ファイル名 = Application.GetSaveAsFilename _ (InitialFileName:=ThisWorkbook.Path & "\" & ファイル名, _ FileFilter:="PDF Files (*.pdf), *.pdf")
If ファイル名 <> "False" Then .ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=ファイル名, _ From:=開始P, To:=終了P End If End If End With
End Sub
Private Function 現在のページ() Dim v As Long Dim i As Long Dim r As Long, c As Long Dim myY As Long, myX As Long Dim p As Long
v = ActiveWindow.View ActiveWindow.View = xlPageBreakPreview
r = ActiveCell.Row c = ActiveCell.Column
With ActiveSheet myY = 1 If .HPageBreaks.Count > 0 Then For i = 1 To .HPageBreaks.Count If r < .HPageBreaks(i).Location.Row Then Exit For myY = myY + 1 Next End If myX = 1 If .VPageBreaks.Count > 0 Then For i = 1 To .VPageBreaks.Count If c < .VPageBreaks(i).Location.Column Then Exit For myX = myX + 1 Next End If If .PageSetup.Order = xlDownThenOver Then p = (.HPageBreaks.Count + 1) * (myX - 1) + myY Else p = (.VPageBreaks.Count + 1) * (myY - 1) + myX End If End With
ActiveWindow.View = v
現在のページ = p
End Function
本当に申し訳ございません。
どなたかに教えて頂けたら本当に助かります。
何卒よろしくお願い致します。
(3年B組) 2015/03/03(火) 16:55
または、99999.xlsmのファイル名を変更しておくとどうなりますか?
(???) 2015/03/03(火) 17:03
削除 (ねむねむ) 2015/03/03(火) 17:04
新しいブックを作成し、これにマクロをコピーして実行するとどうなるでしょう?
(これで治るなら、ThisWorkBookではなく、標準モジュールかシートモジュールにマクロが書かれている可能性。PERSONAL.xlsmならそれでも再発でしょう)
(???) 2015/03/03(火) 17:14
PERSONAL.xlsmの名前が99999.xlsmになってるのかどうかを確認するにはどうすれば
いいでしょうか?
何から何まですみません。
(3年B組) 2015/03/03(火) 17:16
何度も衝突。 話が見えてなかったら済みません。
>11111.xlsmなどのファイルは99999.xlsmのファイルを別名保存して使っています
ということなので、シート上にフォームコントロールのボタンを設置して マクロ登録をしているのではないかと思います。 で、何がまずかったのかといいますと、マクロ登録時のマクロの保存先指定を 作業中のブックにしていなかったためですね。 99999.xlsmファイルのボタンを再度マクロ登録をし直してください。 マクロの保存先に注意。 BJ
にあります。
(デイト) 2015/03/03(火) 17:40
どうしても99999.xlsmが開いてしまいます。
PERSONAL.xlsmは作成されていないようです。
(3年B組) 2015/03/03(火) 18:01
書式上どうしてもリボンからマクロを起動させたいのですが、
そういった事はムリでしょうか?
マクロを起動させても、別名保存する前のファイルは開かず
かつ、リボンから起動させたいのです。
PERSONALに置いたマクロを設定するにはどうすればいいでしょうか。
何卒ご教示の程お願い申し上げます。
本当にすみません。
(3年B組) 2015/03/03(火) 18:48
リボンに追加だと、ファイルではなくアプリケーションに対する変更になるので、 登録したマクロも固定ファイルを指すようになります。
リボンにせよ、PERSONAL にせよ他の端末では使えませんが、このマクロは 他の人は使えなくて良いのでしょうか。
自分だけで使うのでなければ、シートにボタンが現実的な気がします。 (Mook) 2015/03/03(火) 19:49
会社での共有ファイルなので一人で使う事はないです。
むしろ大勢で使うのでどうにかならないか困っています。
(3年B組) 2015/03/03(火) 20:21
>書式上どうしてもリボンからマクロを起動させたいのですが、
シートにボタンだと、ボタンまで印刷されるのが困るということでしょうか? そういうことであれば、印刷されないように設定できますよ。
(マナ) 2015/03/03(火) 20:49
(3年B組) 2015/03/03(火) 21:18
では、 シートにボタンだと、スクロールで見えなくなると困るということでしょうか?
(マナ) 2015/03/03(火) 21:34
シートにボタンだと不便で、 リボンにボタンだと便利な理由を理解できていませんので、 これもだめかもしれませんが ショートカットキーを設定するのはどうですか。 私からはこれが最後です。
(マナ) 2015/03/03(火) 22:45
他のPCと共通するボタンにしたいならば、シートにボタンを貼って、ここにマクロを記述するべきだし、簡単でしょう。
リボンじゃなければ駄目だ〜、と言っている人を説得してください。
(ブックを開いた際に、追加ボタンの有無をチェックし、無ければボタン追加するようなコーディングで対応できるかも知れませんが、お薦めしません)
(???) 2015/03/04(水) 09:11
他の方はどのように使用しているのでしょうか?
(デイト) 2015/03/04(水) 09:13
リボンってクイックツールバーの事でしょうか? 初めて触ってみたけれど、クソみたいですね、これ。
クイックツールバーのボタンだったら、ボタンを捨ててもう1度作り直せばお望みの事だできますよ。 ただ、ボタンを添付?作成した?ブックしか使えないみたいだった。 (他のブックをアクティブにするとボタンが消える。)
こんなクソみたいボタンを使うより、シート上にボタンを作った方がいいと思いますけどね。 2007と2013でかなり違い勘違いしているようなら無視してください。 BJ
リボンのカスタマイズでご希望の動作は可能だと思います。(自分自身のVBAをコールさせるので)
1、素手で立ち向かう場合はここをご参照 ↓ 【Excel のリボンUIを業務アプリとして使う】 http://qiita.com/tomochan154/items/3614b6f3ebc9ef947719
そのページの結びに 「VBA とリボンという不人気コンビで、この記事の需要は限りなくゼロに近いと思います」 てな感想が書いてありますけども。
2.Custom UI Editor Toolを使って少し楽をしたい場合はここをご参照 ↓ 【初心者備忘録】 http://www.ka-net.org/ribbon.html
※上記Toolは、日本語が使えません。
3.上記2の方法でテストしてみましたが、 (ホームタブの最右端にハッピーファイスのボタンを表示する場合) こんな「XML」と「コールバック」でワークはしました。 ↓ <?xml version="1.0" encoding="utf-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabHome"> <group id="Custom" visible="true"> <button id="customButton" label="Print Macro" imageMso="HappyFace" size="large" onAction="CallPrintSub" /> </group> </tab> </tabs> </ribbon> </customUI>
コールバック用VBA
Sub CallPrintSub(control As IRibbonControl) 現在のページを印刷orPDF変換 End Sub
後付けの「日本語化方法」は、初心者備忘録にも載っていたと思います。結構面倒だったような。。。
(半平太) 2015/03/04(水) 09:56
半平太さん紹介の方法、私も以前「自分用に」試しましたが、確かに作るのめんどくさかったです。
2013は確かリボンもクイックアクセスツールバー同様、カスタマイズできたと思うので ウィンドウを非表示にしたxlsmブックをWorkbookOpenイベントで開き、リボンにマクロを登録するとか できるんじゃないですかね?
既存の99999.xlsmをローカルではなくネットワークドライブに保存して、 ウィンドウ非表示で保存しておけば気にならないのかなーと。 (閉じるBeforeClose時に閉じるコードも入れたほうがいいかもしれませんが)
http://kokodane.com/2013_kiso12.htm
(稲葉) 2015/03/04(水) 10:08
原因がわかりませんが、
ファイルを開く処理がどこかで実行されているはずなので、
少しずつ範囲を狭めてみましょう。
まず、リボンを使用しているとのことなので、
1.リボンから実行したとき
2.マクロの一覧から実行したとき
によって、ファイルが開くか確認してください。
両方開く場合は、
載せて頂いたマクロの下記コードのa2をコメント化し
再度マクロ一覧から実行してみてください。
Sub 現在のページを印刷orPDF変換()
Dim myP As Long
myP = 現在のページ …a1 印刷orPDFを選択 myP, myP …a2
End Sub
ファイルが開く場合は、a1もコメント化し再度実行。
それでも開く場合は、別のマクロを作成してみて別もマクロを実行して
開くかどうか確認してみましょう。
>Visual Basicの標準モジュールに
>マクロが入っていますが、これが原因でしょうか?
>ちんぷんかんぷんな事を言ってすみません。
載せてい頂いたマクロ以外にもコードが書かれているのでしょうか?
気になりました。
(K) 2015/03/04(水) 10:33
リボンにマクロを登録した場合、内部では 99999.xlsm!現在のページを印刷orPDF変換 を呼び出すような形で登録されるので、ファイルが開きます。
ですから99999.xlsmファイルを消すと、マクロの実行自体が失敗するかと思います。 (Mook) 2015/03/04(水) 10:59
Thisworkbookに下記マクロというのはどうでしょうか。 操作が1ステップ増えますが、ボタンはどこにも必要ありません。 普通に印刷を実行してみてください。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
If MsgBox("印刷したいのは現在のページのみ?", vbYesNo) = vbYes Then Cancel = True 現在のページを印刷orPDF変換 End If
Application.EnableEvents = True
End Sub
(マナ) 2015/03/04(水) 20:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.