• 締切済み

チェンジイベントの疑似的実行

http://questionbox.jp.msn.com/qa4859752.html のQ&Aを参考に記載しています。 A No.2のマクロを応用し作業をしているのですが、A No.4のチェンジイベントに関して改良したく質問しました。 現状の問題点(A No.2に記載のマクロを運用時) ・コピー&ペーストで値を転記した場合にはマクロが実行されない。 ・ペーストしたセルに対し全てF2キーとEnterキーで変更が加えられたように見せかけなければならない。 希望の改善点 ・コピー&ペーストでもマクロが動くようにしたい。 ・もしくは、貼り付け後にコマンドボタンを押し、貼り付けたセルに対しF2キーとEnterキーが交互に  入力されたようにしたい。 ・もしくは、貼り付け後にコマンドボタンを押し、貼り付けたセルに対し再度コピー&ペーストを行うようにしたい。 この希望の改善点をかなえるようなアドバイス、やサンプルプログラムを提供して頂けないでしょうか。可能な限り早く処理が行う方法を模索中です。ご協力をお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

最初に、元の質問者と同一人物ではないですね。それを確認したいですね。 なぜかというと、引用先のマクロコードを見る限りにおいて、かなり特殊な内容のようです。 マクロというものは、似ていても別なことが往々にしてあります。だから、条件を最初から確認したほうがよいと思います。 出来れば、質問条件を新たに出していただいたほうがよいです。あくまでも、その他のマクロは参考までということです。基本的には、私は、他人のマクロは、再利用はしません。不備が多いので新たに書き起こします。 今のままでは、解決の目処は立たないようにも感じます。 貼りつけた後に、パッと、その目的の値が出てくるというのは、イベントの条件としては難しい部分が残っています。 元のマクロで気になる点 >For Each myWS In Workbooks("検索.xls").Worksheets これで、検索.xlsの全部のシートを検索しているようです。そういう所まで同じなのですか? >・もしくは、貼り付け後にコマンドボタンを押し、貼り付けたセルに対しF2キーとEnterキーが交互に入力されたようにしたい。 これは、再計算という意味だと思います。しかし、もともと、そのような必要性はマクロにはないはずです。数式を入れたから、そうなったまでの話で、本当に数式が必要なのか、私には疑問があります。ロジックとして矛盾しています。数式を入れるなら一般マクロで良いはずです。イベントにするなら数式は必要ないはずです。

yoshi_4413
質問者

お礼

回答頂きありがとうございます。なんとか自力で解決することができました。

関連するQ&A

  • イベントプロシージャ『 Worksheet_Change 』の対象セル

    イベントプロシージャ『 Worksheet_Change 』の対象セルを『 コピー貼付 』の際 どんな方法で貼り付けてもマクロがフリーズすることがなくなる方法をご存知の方が いらっしゃいましたら、是非その方法を教えて下さい。 『 Worksheet_Change 』対象セルの『 コピー貼付 』の際、ツールの『 編集 』から 『 貼り付け 』の手順で『 Worksheet_Change 』対象セル宛に情報を貼り付けてみた 場合は特に問題なく情報が貼り付いてくれます。 『 Ctrl+V 』で貼り付けた場合も問題なく情報が貼り付いてくれます。 しかし、コピー後に貼り付け先のセルを右クリックして『 形式を選択して貼り付け 』の手順での 貼り付けをしようとすると、必ず決まってマクロがフリーズしてしまいます。 そのため、その度にウィンドウ右上の閉じるボタン『 X 』をクリックして『 保存しますか? 』を 『 キャンセル 』してマクロのフリーズを解除している状況です。 コピー元のセルと貼り付け先のセルは共にセル結合されている状態ですが、この『 セル結合 』は マクロのフリーズとは無関係のことと思われます。 何か良い解決策をご存知の方、どうか宜しくお願いします。

  • シートにマクロ記述があるとシートに貼付ができない

    Windows7 Excel2007を使ってマクロ作成中の初心者です。 他の方がwinXP使用してるので、受け渡しのため、互換性のある Excel97-2007で保存・マクロ作成しています。 1)エクセルの新規ブックで、sheet1のセルA1をコピーし、sheet2のA1に貼り付けます。 当然のことながら、正常に貼り付けできます。 貼り付けが完了してもなお、「コピー先を選択しEnterキーを押すか、 貼り付けを選択します。」が表示され続けています。 2)ところがsheet1、sheet2にコードを書くと、(たとえば下のコード) sheet1のセルA1を右クリックしコピーを選択すると「コピー先を選択しEnterキーを押すか、 貼り付けを選択します。」が表示されます。そしてsheet2に「貼り付け」をしようsheet2の シート見出しを選んだ瞬間、「コピー先を選択しEnterキーを押すか、 貼り付けを選択します。」の表示が消えてしまい、「貼り付け」ができません。 3)他のシートに貼り付けができないので、シートにマクロがかけないので、困っています。どうしたらいいかお助けください。 Private Sub Worksheet_Activate() ActiveWindow.DisplayHorizontalScrollBar = False '水平 End Sub

  • Excelのセル変化イベント

    Excel2000及びExcel2010で動作させるVBAマクロを作成しております。 シート上にコマンドボタン配置し、データチェックを行うマクロを登録してあります。 任意のセルにデータを入力し、コマンドボタンを押下することで マクロが実行され、セルの内容をチェックし、不正があればセルを赤くします。 また新たにセルに値が入力されたときにはセルを白くしています。 ※セルに値が入ったことを認識するためにWorkbook_SheetSelectionChangeのイベントを利用しています。 基本的には問題なく動作するのですが、 下記の場合、Excel2000と2010で動作が異なって困っています。 ★手順 (1)任意のセルで”F2"キーを押下し、編集状態とする。 (2)そのままの状態でデータチェックのコマンドボタンを押下する。 【Excel2000の場合】 コマンドボタンが押せない。 【Excel2010の場合】 コマンドボタンが押せる。 このとき、データチェックのマクロがまず実行され、 セルの内容に不正がある場合は赤くなるが、 直後にWorkbook_SheetSelectionChangeイベントが発生し、 「新しい入力」と判断してセルがすぐに白くなってしまう。 =>一瞬セルが赤くなるがすぐに白くなる。 なんとかExcel2000と2010とで動作内容を合わせたいのです。 そこで、コマンドボタンが押下されたとき、 編集中のセルが存在すればマクロは実行しない・・・という方法を考えましたが、 「セルが編集中」であるかはどのようにして判断すればよいでしょうか?

  • マクロ 実行ボタンを押さずに常に実行

    マクロを常に実行することはできますか? 「常に実行」という表現が適切か分からないのですが、 例えば・・・・・・ A1~A10まで数値を入力する表があり、それをD1~D10にコピー・貼り付けを行う[貼り付け]マクロがあります。 Sub 貼り付け() ' 貼り付け Macro Range("A1:A10").Copy Range("D1") End Sub これを、[貼り付け]マクロの実行ボタンを押して実行するのではなく、 A1~A10に数値を入力する毎に[貼り付け]マクロ実行される(D列に数値が入る)事は可能でしょうか? よろしくお願いします。

  • 別のexcelにコピペしたい

    お世話になります。 ExcelファイルのAとBがあります。 Aから、「複数セルを選択」して、Bに「貼付け」する処理の 一部をマクロ(vba)で作成したいと思っております。 具体的ステップとして (1)手動で、Aの任意の連続したセルを選択してコピー (2)Bに移動して、貼り付けしたいセルを選択 (3)(1)で取得したデータをペースト です。 (3)の箇所を「Aのマクロ」を呼び出して実現したいと 思っているのですが、どのようにマクロ(VBA)を記載したら実現できるでしょうか? お手数ですが宜しくお願い致します。

  • EXCEL2003について2点お伺いします

    1.数式のコピーし、貼り付けの「数式」にした場合、 貼り付け先の範囲を解除する場合は任意のセルをクリックしますが、 その際enterキーを押してしまうと、書式もすべてコピーになってしまいます。 通常、確定ではなく、範囲を解除するわけなので、その段階でenterキーを押すことがそもそも間違いなのですが、 その押してしまったときに起こる状態というのは、何をしたことになるのでしょうか?みた感じでは普通に「貼り付け」ボタンを押した状態と同じなのですが・・・。 2.EXCELの各種テキストを見ると 置換や検索の際、まずアクティブセルはA1にしておきましょうと ありますが。A1に合わせておく意味はあるのでしょうか? スペシャリストの試験などでセルをA1に合わせておかないと採点は「×」になるのでしょうか?

  • エクセル コピー ペースト 形式 すべて  マクロ

    エクセルの同じシート内で、セルをコピーし、他のセルにペーストするマクロを利用しております。 Worksheets("data").Range("A45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False しかし、このマクロでは、ペーストする際に、「形式を選択して貼り付け」の「値」のみが貼り付けられてしまいます。 数式を残した状態でペーストしたいので、「すべて」の状態で貼り付け希望です。 なお、このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。) どうか、よろしくお願いします。

  • VBA セル内改行+他セルの文字をカット&ペースト

    A1セル内文字の最後部分にカーソルを持っていって、Alt+Enterを押してA1セルを2行に改行する、 B1にある値をカットして、A1の改行した部分に貼り付け というマクロを作るべく、「マクロの記録」をしてみたところ、A1のテキストがそのままマクロに書き込まれてしまって応用ができないです。 改行部分に貼り付けするにはB1セルの値はコピーではなくカットが必要だと思いますが、これも「マクロの記録」だと動作ではなくテキストそのものが書き込まれてしまい、応用が効きません。 Sub A1改行カットペースト() ' ' A1改行カットペースト Macro ' ' ActiveCell.FormulaR1C1 = "RO20-001" & Chr(10) & "" Range("B1").Select ActiveCell.FormulaR1C1 = "" Range("A1").Select ActiveCell.FormulaR1C1 = "RO20-001" & Chr(10) & "8/7到着" Range("F4").Select End Sub "RO20-001"と"8/7到着"はA1とB1の値であって、この記述ではこのマクロをループさせた時、他の全部のセルに"RO20-001"と"8/7到着"が貼りついてしまいます。 改行やテキストのカット&ペーストの「動作」はどのように記述すれば良いのでしょうか? どなたかご存じの方がいらっしゃいましたら、教えて下さい。 よろしくお願いします。

  • プログラムを教えてください

    プログラムを教えてください エクセル2003でマクロを組もうと勉強中ですがいまいち呑みこめませんので先生方教えてください! 作りたいプログラムはコマンドボタンを押すとフィルタをして検索し、可視セルを別のエクセルシートにコピーして、そのコピーしたエクセルファイルを新規のフォルダに保存するというものです 。 仮にエクセル(1)、(2)、(3)とします。 (1)エクセル(1)にコマンドボタンを作りコマンドボタンを押すとフィルタリングして検索(結構広範囲) (2)フィルタした可視セルをコピー (3)エクセル(2)の指定場所へペースト (4)新規フォルダ作成し保存(フォルダの名前はペーストまたはコピー元のエクセルの任意のセルから持ってきたい) (5)エクセル(2)のシート2以降へエクセル(3)からのエクセルのシートをコピー&ペースト です。宜しくお願いします(>人<)

  • Excelでの リンク貼り付けについて

    Office2013です(どれでも同じだと思いますが) A2 に ”5” と入力します A2を選択して コピー、D2を選択して リンク貼り付け 選択セルを移動しA2のギザギザをなくすためESCーKEY A2が5の時 D2は5を表示 A2を10にするとD2も10に更新されますが リンク貼り付け後 ”良し”という意味手Enter keyを押すと リンクが解除してしまいます、単なるコピーになります この場合 Enter Keyに何か特別の意味が含まれているのでしょうか 是非教えてください。

専門家に質問してみよう