[[20150303155816]] 『いつも特定のファイルが開いてしまいます』(3年B組) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『いつも特定のファイルが開いてしまいます』(3年B組)

いつもお世話になっております。

ある印刷のマクロを起動させた時に
いつも全く関係のない特定のファイルが開いてしまいます。

ファイルが開くだけでなので毎回その関係のないファイルを閉じて終了させますが。。
必ずそのマクロを起動させると同じファイルが開くので煩わしいです。
何が原因かわからないので、ご存知の方がいらっしゃったらご指導願います。

何卒よろしくお願い致します。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


ThisWookbook の中に ファイルを開くマクロが組み込まれているのでは?

[ツール]-[マクロ]-[Visual Basic Editor] を選択し、
ThisWookbookをみてほしい。

(K) 2015/03/03(火) 16:07


あ!?環境が違った…。私のはExcel2003でした。

マクロを開いて確認するのは変わらないので…。
(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が含まれていませんか?

または、99999.xlsmのファイル名を変更しておくとどうなりますか?
(???) 2015/03/03(火) 17:03


 削除 
(ねむねむ) 2015/03/03(火) 17:04

個人用マクロブックにこのマクロは保存されていますか?
PERSONAL.xlsmの名前が99999.xlsmになってしまって起動していたりしませんか?
(デイト) 2015/03/03(火) 17:11

リンクではないようですね。
しかし、ファイル名を変更しても、追従して開いてしまうのは不思議…。
他ファイルのマクロだったとしても、ファイル名を変えてしまえば追従しなくなるはずだし…。

新しいブックを作成し、これにマクロをコピーして実行するとどうなるでしょう?
(これで治るなら、ThisWorkBookではなく、標準モジュールかシートモジュールにマクロが書かれている可能性。PERSONAL.xlsmならそれでも再発でしょう)
(???) 2015/03/03(火) 17:14


いつもありがとうございます。

PERSONAL.xlsmの名前が99999.xlsmになってるのかどうかを確認するにはどうすれば
いいでしょうか?
何から何まですみません。
(3年B組) 2015/03/03(火) 17:16


Visual Basicの標準モジュールに
マクロが入っていますが、これが原因でしょうか?
ちんぷんかんぷんな事を言ってすみません。
(3年B組) 2015/03/03(火) 17:19


 何度も衝突。
 話が見えてなかったら済みません。

 >11111.xlsmなどのファイルは99999.xlsmのファイルを別名保存して使っています

 ということなので、シート上にフォームコントロールのボタンを設置して
 マクロ登録をしているのではないかと思います。
 で、何がまずかったのかといいますと、マクロ登録時のマクロの保存先指定を
 作業中のブックにしていなかったためですね。
 99999.xlsmファイルのボタンを再度マクロ登録をし直してください。
 マクロの保存先に注意。
 BJ


PERSONAL.xlsmが作成されている場合(マクロの自動記録時、マクロの保存先を個人用マクロブックにしたことがあれば作成されています)、
ALT+F11で表示されるマクロ編集画面で、左のツリーにPERSONAL表示されます。ここに記述したマクロは、どのブックを開いても機能します。
(???) 2015/03/03(火) 17:38

個人用マクロブックは
C:\Users\ユーザ\AppData\Roaming\Microsoft\Excel\XLSTART

にあります。

(デイト) 2015/03/03(火) 17:40


マクロを起動させる時は
リボンにボタンを追加しておりますので、そこから起動させております。

どうしても99999.xlsmが開いてしまいます。
PERSONAL.xlsmは作成されていないようです。

(3年B組) 2015/03/03(火) 18:01


個人用マクロブックはにも何も保存されておりません(>_<)
(3年B組) 2015/03/03(火) 18:02

リボンにボタン追加している、って、それが9999.xlsmに置いたマクロを指しているのでは?
シートにボタンを置くか、リボンから押すのはPERSONALに置いたマクロにするかでしょうか。
(???) 2015/03/03(火) 18:29

ありがとうございます。

書式上どうしてもリボンからマクロを起動させたいのですが、
そういった事はムリでしょうか?

マクロを起動させても、別名保存する前のファイルは開かず
かつ、リボンから起動させたいのです。

PERSONALに置いたマクロを設定するにはどうすればいいでしょうか。

何卒ご教示の程お願い申し上げます。
本当にすみません。
(3年B組) 2015/03/03(火) 18:48


http://kokodane.com/macro10.htm

 リボンに追加だと、ファイルではなくアプリケーションに対する変更になるので、
 登録したマクロも固定ファイルを指すようになります。

 リボンにせよ、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のものです。リボンに追加したボタンは、他のPCでは使えません。
他のPCでも同じようにリボンを使って処理したいならば、全てのPCに同じボタン追加をしなければいけませんから、普通はそのような運用にはしません。

他のPCと共通するボタンにしたいならば、シートにボタンを貼って、ここにマクロを記述するべきだし、簡単でしょう。
リボンじゃなければ駄目だ〜、と言っている人を説得してください。
(ブックを開いた際に、追加ボタンの有無をチェックし、無ければボタン追加するようなコーディングで対応できるかも知れませんが、お薦めしません)
(???) 2015/03/04(水) 09:11


他の方でも同じように99999.xlsmがでたり、リボンに追加して使用していますか。

他の方はどのように使用しているのでしょうか?
(デイト) 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


99999.xlsmというファイルが開いても印刷などに影響がないのなら印刷後に99999.xlsmを閉じるようにしたらいいのでは?
(とらねこ) 2015/03/04(水) 10:30

なんで、「99999.xlsm」が開くんでしょうね。
コードを見てみましたがファイルを開く処理はなさそうです。

原因がわかりませんが、
ファイルを開く処理がどこかで実行されているはずなので、
少しずつ範囲を狭めてみましょう。

まず、リボンを使用しているとのことなので、

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.