• ベストアンサー

Excelマクロ実行不可で掃除してみたい

Excel2000 罫線を除く全て貼り付けをマクロに記録しCtrl][Alt][v]のショートカットキーを使いたかったので、マクロの記述を他の(以前教わった)Auto_Open()のVBAにコピーししました。その日は使えたのですが、後日使えなくなりました。打つ手はありますか?   今度は既存のVBAに引っ越さないでやってみようと、VBAProject(PERSONAL.XLS)の各Moduleを解放し何もない状態で 再び[罫線を除く全て]を貼付けるマクロを記録しました。やはり実行できません。 症状としては  罫線で囲まれたセルを選択してコピーし 貼付け先を選択し ツールバーの[実行三角印]をクリックするとコピー元の点線アクティブが解除されてしまいます。 何かが悪さしている感じです。お掃除は出来ないでしょうか? Excelを削除してインストールし直さないとダメでしょうか?上書き再インストールでは直りませんでした。

noname#245250
noname#245250

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.6

#1です。 > 他の人がマクロ出来るか興味有ります。 最初から言っているように、こちらの環境でもキーボードのショートカットを使わないとこのマクロは上手く動きません。そういう意味でojin60さんの環境がおかしいのでは無く、動作そのものは正常ではないかと申しております。 使っているマクロがどんな事をしているか理解しておいた方が良いようです。 これは「キーボードショートカットを自動的に割当てるマクロ」と考えて良いと思います。 Sub Auto_Open()  Application.OnKey "^%{v}", "罫線無v" End Sub Sub Auto_Open は記述が Personal.xls にある場合はExcelが開いた時、そうで無い場合はマクロが含まれる該当ブックが開いた時に自動実行されるマクロです。 上記は 自動的に実行され、Ctrl+Alt+V キーが押された時に「罫線無v」マクロを実行しなさいと命令する「マクロ」です。 Sub 罫線無v()   Selection.PasteSpecial Paste:=7     Application.CutCopyMode = False End Sub 上記は先のマクロ記録で記録された Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _     SkipBlanks:=False, Transpose:=False とまったく同じと言っても良いものです。 違いの Paste:=7 の「7」は xlAllExceptBorders を数字で表したものです。 Operation:=xlNone, SkipBlanks:=False, Transpose:=False は全て省略可能なので省略しています。Application.CutCopyMode = False は、コピー動作中にEscキーを押した場合の記録マクロと同じです。 つまり、この2つで Ctrl+Alt+Vキーを押したときに「罫線無v」マクロが自動的に実行されるようにしたマクロ って事です。 私が以前の回答で例に上げたマクロは、マクロを実行してからコピー元を選択し、コピー先を指定しています。 これにより、キーボードショートカットを使わなくても良いので、ツールバーに割当てる事が可能になっています。

noname#245250
質問者

お礼

期待通りまたご返事をいただきました。ありがとうございます。そして無知者を理解の入り口に導いてくださる説明力に感服いたしております。何故3つも購入した参考書は壁厚く 眠くなるだけなのだろう? マクロを実行してから、コピー元とコピー先を指定する構文は実行してみたらおもしろかったです。ボタンに登録して何かに使えそう。 当方混乱してご迷惑お掛けしました。ショートカットキーで実行できていたのが名前変更などしている内に不可となり、実行ボタンでは使用できないと騒ぎ、「書いたり消したりしていると重くなる」との活字を読んだ記憶が浮上し、連想で、ゴミが残り陰で悪さしているに違いない、と勘ぐり“掃除したい”になったのでした。その間辛抱強くご返事いただいたことは全て役立つことでした。 (反復使用の言葉しか思い当たりませんが) 心より感謝申し上げます。ありがとうございました。

その他の回答 (5)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.5

#1です。 何をされたいのか不明です。「新規のVBエディタの状態」ってどんな状態の事なんでしょう? アドインはチェックを外せば消えますし、Personal.xls 等は XLSTARTフォルダにあるのでごみ箱へポイすれば起動時にロードしなくなります。 XLSTARTフォルダの場所はOSによって異なりますが、多分こんな感じでしょう。 Windows9x、Me C:\Program Files\Microsoft Office\Office\XLStart Windows2000、XP C:\Documents and Settings\ログイン名\Application Data\Microsoft\Excel\XLStart Win2000、XPはエクスプローラのフォルダオプションで全てのファイルとフォルダを表示にしないと見えないかも知れません。 もとのご質問からどんどん離れているような。。。

noname#245250
質問者

補足

パニクってふらつき、ご迷惑ごめんなさい。 {罫線を除く全て貼付け}は{編集}から入ってマウスで実行すると出来ますが、マクロにすると、以下の様な構文になり、私の環境では実行出来ません。他の人がマクロ出来るか興味有ります。 Sub Macro1() ' Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End Sub 何かおかしくて“お掃除”などと考えたわけです。 所が、保存ファイルの中から、やっと見つけました、以前教わった{罫線を除く全て貼付け}の構文は以下の物で、これだと今の私の環境でも実行できます。で、お騒がせしましたが、お掃除などと突飛なことは考えず、このまま使ってゆくことにいたします。 ご回答への感謝と重々のお詫びと共に、明日閉めさせていただきます。Excelのバグと何かで読んだけど、まさか{罫線を除く全て}ではないでしょう?私も、実行できていたときは下記の構文でやっていたのかしら。名前変更などして折り合い悪くなり削除して、マクロして上の構文使って、出来ない出来ないと言っていたのか!? Sub Auto_Open() Application.OnKey "^%{v}", "罫線無v" End Sub Sub 罫線無v() Selection.PasteSpecial Paste:=7 Application.CutCopyMode = False End Sub

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

#1です。 xlaはアドインです。 funcres (FUNCRES.XLA) は標準の分析ツール atpusrc1.xls (ATPVBAEN.XLA) は標準の分析ツール-VBA と思われます。 Excelメニューのツール-アドインで該当チェックを外せば閉じます。 PERSONAL.XLS は個人用マクロブックで、マクロ記録を作業中のブックではなく個人用マクロブックに保存した場合に作成され、Excel起動時に自動的にロードされます。 本当にまったく身に覚えが無い場合は、ウィルスの可能性もありますが、、、 VBA Functons and Subs は不明です。

noname#245250
質問者

お礼

重ねての明快なアドバイスありがとうございました。 心より感謝申し上げます。 今どうやったら新規のVBエディタの状態になるか、試行錯誤しています。削除後新規Excel2000をインストールしてもVBは残っているし、そもそも、Excel97を要求されないで VupのExcel2000がインストールされること自体新規ではないらしいし。スキル低いから、悶絶です。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

#1です。 > 選択元がハイライトではなくなるのが正常な動作なのですか? 正常と言ったのは、どの環境でも同じ結果になるのではという事です。 こちらで試した限りでは、一部のダイアログが表示されるとコピー状態は解除されますが、その動作に一貫性はみいだせません。例えば、ある範囲をコピーしてから「検索」選んでもコピー状態は解除されないが、「置換」だと解除される。ただし、「検索」のダイアログ内から「置換」を選んだ場合は解除されないなど。 つまり、ojin60さんの環境がどうと言う事ではなく、Excelの仕様またはバグではないかと思われます。マクロを選ぶダイアログが表示された時点でコピーは解除されてしまうので、「何もコピーしていないときに実行したときと同じ」状態になってしまう訳です。 ダイアログを出さないようにショートカットキーに割当てをするか、すべての処理をマクロ内で完結させるかしか無いように思います。 例はマクロを実行した後で、コピー元範囲の選択、貼付け先の指定を行い、貼付けをします。あんまりスマートじゃありませんが。 Sub PasteNoBorders() Dim r1 As Range, r2 As Range On Error GoTo ER:  Set r1 = Application.InputBox _    ("コピー元をマウスで選択して下さい。", "コピー元選択", Type:=8)  Set r2 = Application.InputBox _    ("貼付け先をマウスで選択して下さい。", "貼付け先選択", Type:=8)  r1.Copy  r2.PasteSpecial xlPasteAll  For i = 5 To 12    r2.Resize(r1.Rows.Count, r1.Columns.Count) _     .Borders.LineStyle = xlNone  Next i ER: End Sub

noname#245250
質問者

補足

ご丁寧な説明に感謝申し上げます。納得の心境です。 書いていただいた構文はいずれ実行してみます。 質問の本題は、実行できないけど、何か見えないゴミが残っているのではないか、それを掃除したい、ということですが、今気が付いたのですが、VBのエディタの左ペインがいつの間にか変わっているのです。いまのプロジェクト・エクスプローラは atpusrc1.xls (ATPVBAEN.XLA) >>ThisWorkbook >>VBA Functons and Subs funcres (FUNCRES.XLA) VBAProject >>Sheet1 >>Sheet2 >>Sheet3 VBAProject (PERSONAL.XLS) となっています。最後のプロジェクトは常用で多数の構文があります。 最初のatpusrcl.xlsを右クリックでプロパティを開こうとすると、なんとパスワードを求められます。パスワードは判りません。VBA Functons and Subs を開くと大量の構文があります。 次のfuncres はダブルクリックするとパスワードを求められます。これは何なのかしら?解放することも出来ません。レジストリーの何処に書き込まれているでしょう? 強引に削除してみたいのですが。まさかウイルス?

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

> お掃除は出来ないでしょうか?  まず、マクロ有効の状態でブックを開いていますか? メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を 例えば、「中」にして[OK]します。 あとは、コードを提示しないと、お掃除お手伝え出来ないみたいんよ。

noname#245250
質問者

補足

ありがとうございました。 マクロはいつも有効状態です。問い合わせウインドが出ない様に[署名]をWEBで教わりましたので。セキュリティはデホルトの「中」です。 コードを提示しないと とはどういう事でしょうか?よろしければご指導の程お願いします。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

正常な動作のように思いますが?? マクロ実行のオプションでショートカットキーを割当てたらどうでしょう?

noname#245250
質問者

補足

ありがとうございました。 選択元がハイライトではなくなるのが正常な動作なのですか? マクロの実行ボタンを押し選択元がコピー印の点線ハイライトではないのに、マクロウインドから実行すると [実行時エラー1004 RangeクラスのPasteSpecialメソッドが失敗しました] のウインドが出ます。 これは何もコピーしていないときに実行したときと同じです。 [値のみ貼付け] をショートカットを付けてマクロを作りショートカットキーで実行すると出来ますが、ツールバーの実行ボタンからマクロウインドに入ろうとすると、点線ハイライトが消え、実行時エラー1004に成ります。 そこで掃除したいと素人考えしました。

関連するQ&A

  • Excelのマクロ(VBA)について教えてください。

    このようなマクロをつくりたいのですがうまく作れません。 セルをコピーした後、貼り付け先のセルを選択して、 <ここからがマクロ> 形式を選択して貼り付け→罫線を除くすべて <マクロ終了> 他の貼り付け方法はうまくできるのですが、「罫線を除くすべて」だけができません。 参考までにこれが作られたVBAです。 Sub Macro1() Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End Sub 以上です。 どなたかアドバイスよろしくお願いします。

  • Excelで「形式を選択して貼り付け」のマクロの作り方

    WinXPです。 Excelで 1.コピー元セルの値をコピーします。 2.コピー先セルを選択します。 3.コピー先セルを右クリックして 4.「形式を選択して貼り付け」を選択します。 5.「罫線を除く全て」を選択します。 ここでコピー元セルもコピー先セルも位置関係はなくランダムです。 上の4.5.のみのマクロを作りたいのですが うまくいきません。 VBAは全くわかりませんが、以前5.の部分が「値」に したものをカーソルの操作を記録することにより 作ってあります。(Win98ですが) したがって今回も5.が違うだけですから 同様にできると思うのですが 昔のことで方法が忘れてしまいました。 単純に4.5.をマクロに記録して、実行したら 「シンジのメソッドが・・・」というエラーに なってしまいました。 よろしくお願いします。

  • エクセルのマクロについて教えて下さい

    エクセルで、データ(書類)のコピー貼り付けのマクロを組みました。 ツール→マクロで、新しいマクロの記録から、実際にコピーをして貼り付けをし、記録の終了をしました。 次に他のセルの場所でもそのマクロを実行して、何度も場所を変えてコピー貼り付けを実行したいのですが、操作用のボタンを作成して貼り付け、ボタンを押すと、同じ場所でコピー貼り付けを繰り返します。 たしか絶対参照とか相対参照とかあったような気がするのですが…。 どうすれば、他の場所でもボタンを押すだけでコピー貼り付けのマクロを実行できるようになりますか? よろしくお願いします。

  • Excelマクロの登録されたModule10の名前変更出来ますか

    Exel2000のマクロの実行をツールバーに登録していますが、それをクリックして開く「マクロ」のウインドのマクロ名ボックスには PERSONALXLS!セル黄色 などとエディタの最初の行を工夫することで表示できますが、 VBエディタのVBAProject(personal.xls)には Module1~Module10などと表記されます。これを変名することは出来ないのですか?「セル連結するしない」などに。

  • Excelマクロを削除したのに…

    こんにちは。 いまExcel2003を使用しています。 あるブックファイルにマクロプログラム(VBA)を作成しました。 VBAProjectエクスプローラには標準モジュール「Module1」 ができています。 そこでこのマクロ自体を削除することになり, VBAProjectエクスプローラから標準モジュール「Module1」 を開放しました。 ところが当該ブックファイルを一旦閉じて, 改めて開くと,[セキュリティ警告]ダイアログが表示されて, マクロを有効にするか無効にするかを聞いてきます。 マクロを消したら, マクロセキュリティレベルを変えないままで, 上記のダイアログが出ないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 よろしくお願いします。

  • VBAエクセル2003でのマクロの実行について

    VBAで2003を使っています。 マクロの実行をショートカットキーで操作したいのですが ツール→マクロ→オプションでショートカットキーの作成が可能ですが 会社(エクセル2003)のでやろうとすると オプションの表示がありません。 (もしかしたら2003ではないのかもしれませんが、確認した範囲では 2003かと思われます。2010とかいいのではないのは確かです。) ショートカットキーを作る方法でどのような方法が 他にありますか?教えてください。 お願いいたします。

  • 「罫線を除く全ての貼り付け」をマクロ化したい

    「罫線を除く全ての貼り付け」をマクロ化したいと思いマクロの記録をすると、 Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False のようなマクロができあがるのですが、これを実行すると RangeクラスのPasteSpecialメソッドが失敗しましたと出て実行できません。 どうも形式を選択して貼り付けが全てそのようになるようです。 原因と解決方法がわかる方いらっしゃったらお願いします。

  • マクロを実行するとフリーズしてしまう。

    マクロを実行するとフリーズしてしまいます。 パソコンが原因なのでしょうか? マクロは Sub 抽出() ' '「貼り付け」シートを'一度全てクリアする Sheets("貼り付け").Select Cells.Select Selection.Clear '「元」シートを選択 Sheets("元").Select 'フィルタかけなおし Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter '’抽出前「*」選択 Selection.AutoFilter Field:=1, Criteria1:="~*" '全て選択してコピー Cells.Select Application.CutCopyMode = False Selection.Copy '「元」を貼り付ける Sheets("貼り付け").Select Cells.Select ActiveSheet.Paste 'フォントを「9」 With Selection.Font .Size = 9 End With End Sub です。 パソコンのスペックは celeron® cpu3.20GHz 3.19GHz 1GB RAM です。 最近VBAを覚え始めたばかりな者です。 仕事のデータではもっと複雑なマクロを実行していてもパソコンはなんともないので マクロに原因があるのではなくパソコンに原因があるのでしょうか? (上記のマクロを実行しているのは自宅のPCです) よろしくお願いします。

  • エクセルのマクロの修正方法

    エクセルで簡単なマクロを作って使用しています。 例えば罫線を引いたり、特定の行列を削除するなど本当に簡単なものです。 ところが、ある時期から全てのマクロ(20個くらい)を実行させると必ず、ある特定のファイルが開いてしまうのです。 おそらくなにか間違った操作したためだとおもうのですが、どこで修正すればよいのでしょうか? マクロ編集画面の「VBAProject」というところですか? (あまり詳しくないのでかんたんにお願いします) ウインドウズXPでエクセル2000です。

  • このマクロを実行し、表示させるにはどうしたらよいですか?

    恐れ入ります。初心者です。WinXP、Excel 2002を使用。VBAコードは読めません。 「本gooのカテゴリ」について、まだ把握してなく、別カテゴリで同質問してしまい、その回答者様に当「Office系ソフトのカテゴリ」へとご指示されました。 質問がダブってしまいましたが、よろしくお願い致します。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1432630 のページ の回答者No.2様のマクロを実行し、表示させるにはどうしたらよいですか? このままコピーしましたが、実行できませんでした。 私のやり方(解釈)が間違っていたのだと解りました。 別のコードを追加しないと、実行できないのでしたら、何かサンプル的コードで構いませんので、 このマクロを実行し表示させる方法が、おありでしたら教えてくださいませ。 1、コピー&ペーストから、詳しく教えて下さいませ。 2、Module1とModule2を個々のマクロで実行し、表示する方法も併せて教えて下さいませ。

専門家に質問してみよう