Excel2000 罫線を除く全て貼り付けをマクロに記録しCtrl][Alt][v]のショートカットキーを使いたかったので、マクロの記述を他の(以前教わった)Auto_Open()のVBAにコピーししました。その日は使えたのですが、後日使えなくなりました。打つ手はありますか?
今度は既存のVBAに引っ越さないでやってみようと、VBAProject(PERSONAL.XLS)の各Moduleを解放し何もない状態で 再び[罫線を除く全て]を貼付けるマクロを記録しました。やはり実行できません。
症状としては
罫線で囲まれたセルを選択してコピーし
貼付け先を選択し
ツールバーの[実行三角印]をクリックするとコピー元の点線アクティブが解除されてしまいます。
何かが悪さしている感じです。お掃除は出来ないでしょうか? Excelを削除してインストールし直さないとダメでしょうか?上書き再インストールでは直りませんでした。
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」マクロが自動的に実行されるようにしたマクロ
って事です。
私が以前の回答で例に上げたマクロは、マクロを実行してからコピー元を選択し、コピー先を指定しています。
これにより、キーボードショートカットを使わなくても良いので、ツールバーに割当てる事が可能になっています。
期待通りまたご返事をいただきました。ありがとうございます。そして無知者を理解の入り口に導いてくださる説明力に感服いたしております。何故3つも購入した参考書は壁厚く 眠くなるだけなのだろう?
マクロを実行してから、コピー元とコピー先を指定する構文は実行してみたらおもしろかったです。ボタンに登録して何かに使えそう。
当方混乱してご迷惑お掛けしました。ショートカットキーで実行できていたのが名前変更などしている内に不可となり、実行ボタンでは使用できないと騒ぎ、「書いたり消したりしていると重くなる」との活字を読んだ記憶が浮上し、連想で、ゴミが残り陰で悪さしているに違いない、と勘ぐり“掃除したい”になったのでした。その間辛抱強くご返事いただいたことは全て役立つことでした。
(反復使用の言葉しか思い当たりませんが)
心より感謝申し上げます。ありがとうございました。
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はエクスプローラのフォルダオプションで全てのファイルとフォルダを表示にしないと見えないかも知れません。
もとのご質問からどんどん離れているような。。。
この回答への補足
パニクってふらつき、ご迷惑ごめんなさい。
{罫線を除く全て貼付け}は{編集}から入ってマウスで実行すると出来ますが、マクロにすると、以下の様な構文になり、私の環境では実行出来ません。他の人がマクロ出来るか興味有ります。
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
No.4
- 回答日時:
#1です。
xlaはアドインです。
funcres (FUNCRES.XLA) は標準の分析ツール
atpusrc1.xls (ATPVBAEN.XLA) は標準の分析ツール-VBA
と思われます。
Excelメニューのツール-アドインで該当チェックを外せば閉じます。
PERSONAL.XLS は個人用マクロブックで、マクロ記録を作業中のブックではなく個人用マクロブックに保存した場合に作成され、Excel起動時に自動的にロードされます。
本当にまったく身に覚えが無い場合は、ウィルスの可能性もありますが、、、
VBA Functons and Subs は不明です。
重ねての明快なアドバイスありがとうございました。
心より感謝申し上げます。
今どうやったら新規のVBエディタの状態になるか、試行錯誤しています。削除後新規Excel2000をインストールしてもVBは残っているし、そもそも、Excel97を要求されないで VupのExcel2000がインストールされること自体新規ではないらしいし。スキル低いから、悶絶です。
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
この回答への補足
ご丁寧な説明に感謝申し上げます。納得の心境です。
書いていただいた構文はいずれ実行してみます。
質問の本題は、実行できないけど、何か見えないゴミが残っているのではないか、それを掃除したい、ということですが、今気が付いたのですが、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 はダブルクリックするとパスワードを求められます。これは何なのかしら?解放することも出来ません。レジストリーの何処に書き込まれているでしょう? 強引に削除してみたいのですが。まさかウイルス?
No.2
- 回答日時:
> お掃除は出来ないでしょうか?
まず、マクロ有効の状態でブックを開いていますか?
メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
例えば、「中」にして[OK]します。
あとは、コードを提示しないと、お掃除お手伝え出来ないみたいんよ。
この回答への補足
ありがとうございました。
マクロはいつも有効状態です。問い合わせウインドが出ない様に[署名]をWEBで教わりましたので。セキュリティはデホルトの「中」です。
コードを提示しないと とはどういう事でしょうか?よろしければご指導の程お願いします。
No.1
- 回答日時:
正常な動作のように思いますが??
マクロ実行のオプションでショートカットキーを割当てたらどうでしょう?
この回答への補足
ありがとうございました。
選択元がハイライトではなくなるのが正常な動作なのですか?
マクロの実行ボタンを押し選択元がコピー印の点線ハイライトではないのに、マクロウインドから実行すると
[実行時エラー1004
RangeクラスのPasteSpecialメソッドが失敗しました]
のウインドが出ます。
これは何もコピーしていないときに実行したときと同じです。
[値のみ貼付け] をショートカットを付けてマクロを作りショートカットキーで実行すると出来ますが、ツールバーの実行ボタンからマクロウインドに入ろうとすると、点線ハイライトが消え、実行時エラー1004に成ります。
そこで掃除したいと素人考えしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- CAD・DTP EXCELからAUTOCADに貼り付け 1 2022/04/20 17:42
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) vba セルの罫線について教えてください 2 2022/12/28 17:14
- Excel(エクセル) エクセルVBA 作業後に選択範囲を解除する方法 5 2023/02/17 07:13
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
Excel VBA のdebug(F8キー) が...
-
マクロ 実行ボタンを押さずに...
-
複数ファイルにある特定のシー...
-
Excelのワークシート上に検索窓...
-
Wordの画面を左右にスクロール...
-
EXCELのセルへ、デジタル時計を...
-
エラーになってないのにVBA...
-
エクセルのマクロ機能で前のシ...
-
powerpointにwebページを挿入
-
ワードからエクセルへ貼り付け...
-
エクセルに画像を貼付け縮小す...
-
《エクセル2000》非表示になっ...
-
Excelを開いた時に表示さ...
-
マクロ ブックをマクロなしでコ...
-
エクセルでマクロ実行中に任意...
-
モジュール内のマクロを全て実...
-
AccessのテーブルデータをExcel...
-
マクロボタンを作ってのマクロ...
-
ExcelVBAで、タイマー割り込み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
複数ファイルにある特定のシー...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
Excel VBA のdebug(F8キー) が...
-
ワードからエクセルへ貼り付け...
-
エクセルのマクロ機能で前のシ...
-
Excelのワークシート上に検索窓...
-
モジュール内のマクロを全て実...
-
エクセル グラフの軸の最小値最...
-
EXCEL 複数のシートの同一の位...
-
エクセルで複数のシートをまと...
-
【Excel VBA】エラー番号400
-
Excelマクロでオプションボタン...
-
Wordの画面を左右にスクロール...
-
マクロ ブックをマクロなしでコ...
-
Wordで「原稿用紙○枚」を換算す...
-
AccessのテーブルデータをExcel...
おすすめ情報