• 締切済み

2つのコードを平行して実行させたい

以前教えていただいた、VBAのコードがシート1に記載してありまして、今回教えていただいたコードもシート1に記入しなくてはいけないのですが、2つのコードを入れると、上下に仕切りの罫線が出たので、2つのコードが実行できるのかとおもったのですが、コンパイルエラーとか出て ダメでした。 片方づつだと問題なく動くので、2つ入れているのがダメなんだとおもいます。 対処法を教えてください。

みんなの回答

  • Asahi2001
  • ベストアンサー率54% (6/11)
回答No.2

>教えていただいたコードが両方とも >Private Sub Worksheet_SelectionChange(ByVal Target As Range) >で始まるのですが、これがいけないのでしょうか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub は、イベントプロシージャなので2つあるとエラーになります。 サンプルAとBがあるならBの Private Sub Worksheet_SelectionChange(ByVal Target As Range)   処理の記述 End Sub 処理の記述部分をコピーしてAに張り付けて、Bを消すと一応ひとつになります。 記述内容が分からないので、エラーが発生したり正しく処理ない可能性があります。 >Private Sub Worksheet_SelectionChange1(ByVal Target As Range) >とか1を追加すれば解決できるのでしょうか? 呼び出して実行しないと処理せれません。 Aに、Call Worksheet_SelectionChange1(Application.ActiveCell) を追加すれば一応処理されます。 しかし、記述内容によってはエクセルの処理が重くなる可能性があります。

回答No.1

「コンパイルエラー」だけじゃなくて、どういうエラーだったかも一緒に表示されたよね?なんでそれ記載しないの? まあ、どうせマクロの名前が同じだからだと思うけど。

kenken008
質問者

補足

こんにちは。 たしかに名前のエラーのようです。 コンパイルエラー: 名前が適切ではありません:worksheet_SelectionChange と表示されてしまいます。 教えていただいたコードが両方とも Private Sub Worksheet_SelectionChange(ByVal Target As Range) で始まるのですが、これがいけないのでしょうか? 片方に Private Sub Worksheet_SelectionChange1(ByVal Target As Range) とか1を追加すれば解決できるのでしょうか?

関連するQ&A

  • 「ファイルが見つかりません」VBAが実行できない

    今まで問題なく使えてたアクセスのファイルがあるのですが vbaコードを実行しようとしたら、ファイルが見つかりません と言うエラーがでてしまいます。 VBE画面を開いて、コンパイルしてみたのですが、どこでエラーになってるのか出ません。 何をしても、ファイルが見つかりません が出ます。 どうすればいいでしょうか? 2010です。

  • 1つのVBAコードをすべてのコアを使って実行させたい

    いつもお世話になっております。 クアッドコア搭載のPCを購入してVBAの処理速度の向上を期待していたんですが、1つのコアだけで処理されているようです。 EXCEL2000でVBAコードを実行したのが原因だと思いまして、試用版のEXCEL2007を使って同じVBAコードを実行してみたのですがダメでした。 VBAコードをすべてのコアを使って実行することはできないのでしょうか。 特別なコードを記述しなければならないのでしょうか。 よろしくお願いいたします。

  • 実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません

    エクセルVBAを使用して、あるシートAのコードに   Worksheets("シートB").Visible = xlSheetVisible と記述して、既に非表示設定してある別のシートBを表示させたいと思っているのですが、表題のエラーが出て実行できません。 上記記述文のところでエラーとなります。 どなたか原因をご存知の方は、その原因と対処法をお教えください。 よろしくお願い申し上げます。

  • ExcelVBA コードの実行について

    VBA勉強中の者です。早速ですが質問させて頂きます。 sheet1のA2セルをアクティブにした時、メッセージボックスに「ここはA2です」と表示させたく、 sheet1に以下のコードを記述しました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = Range("A2").Address Then MsgBox "ここはA2です" End If End Sub VBEを開いた状態でsheet1のA2を選択したところ上手く動作したのですが、 この状態で▲マークの再生ボタン(sub/ユーザーフォームの実行)を押しても マクロ呼び出し画面が出てしまうだけで実行できません。 何故なのでしょうか? 目的の動作は「ブックを開いた」時からずっと有効にさせていたいのです。 どなたかご助力お願いいたします。

  • word 2010でコンパイルエラー

     word 2010でコンパイルエラーが発生します。ヘルプには次のメッセージが出ます。対処方法教えてください。 非表示モジュール <モジュール名> 内でコンパイルエラーが発生しました。 アプリケーション情報 保護されているモジュールにコンパイル エラーがあります。このエラーは、保護されているモジュール内にあるため、表示できません。 このエラーは一般に、実行中のアプリケーションのバージョンまたはアーキテクチャにコードが対応していない場合に発生します (32 ビット版の Microsoft Office アプリケーションを対象としているドキュメント内のコードを 64 ビット版の Office で実行しようとした場合など)。 このエラーの原因と解決方法は次のとおりです。 エラーの原因: このエラーは、VBA コード中の保護されている (非表示) モジュール内にコンパイル エラーがある場合に発生します。該当モジュールが保護されているため、問題となっているコンパイル エラー自体は明示されません。 解決策: ドキュメントまたはプロジェクト内の VBA コードにアクセスできる場合は、該当するモジュールの保護を解除してコードを再実行し、問題となっているエラーを確認します。 ドキュメント内の VBA コードにアクセスできない場合は、ドキュメントの作成者に問い合わせ、非表示モジュール内のコードを更新するように依頼してください。

  • EXCEL VBAでたくさんのURLの一覧からHTTPレスポンスコードを取得したい。

    VBA初心者です。 EXCEL VBAでプログラミングの練習をしています。 シート名:一覧 URL記入セル:A1~A100 結果を記入するセル:B1~B100 があり、URL記入セルに入力されているURLにアクセスし レスポンスコードを(404とか200とか)B列に書き出す というのを実行できるコードの書き方を教えてください。 (1週間取り組んでいますがまだできません・・・) サンプルコードを直接改定頂けると最高です。 宜しくお願いします。

  • 実行時エラー2118

    アクセス2010です。 アクセスVBAのコードで Forms("フォーム1").Controls("サブフォーム").Requery を実行しようとすると 実行時エラー2118 ”Requery/再クエリ”アクションを実行する前に、 カレントフィールドを保存する必要があります。 となります。 VBA実行中に、手作業でデータを修正した事により発生したエラーなのですが そもそもVBA実行中にデータをいじる事は可能なのでしょうか? 出来る時とできない時があります。 更に、上記のエラーが発生しているときは、 VBAが中断の状態で、 そのデータを保存することができません。 データの保存が出来ないと、コードが進まないのですが こういう時はどうすればいいのでしょうか? VBAを停止して、手作業で修正したデータを保存するしかないのでしょうか?

  • エクセル2007VBAでUngroupができない

    エクセル2003で作ったvbaコード付きのファイルをエクセル2007で開いたときに Cells.Rows.Ungroup の部分がエラーになってしまいます。 エラー内容は 「実行時エラー1004 RangeクラスのUngroupメソッドが失敗しました」 です。 エクセル2003では問題なく動いていたのになぜ2007ではだめなのでしょうか? vba画面でデバッグしてもコンパイルエラーにはなりません。 アドバイスよろしくお願いします。

  • エクセルVBAでブックを開くとマクロを実行するようにしたいのですが

    ブックを開くと同時に開いたシートを保護するようにしたいのですがうまくいきません。通常(?)ボタンを作っておいて押すと実行すると思うのですが、そうせずにブックを開くと実行するようにならないかと思っています。保護をするコードはわかるのですが、どこにそれを書き込んだらいいのかもわかりません。VBAプロジェクトを見るとSheet1,Sheet2,ThisWorkbook,UserForm1とありますが、そのうちのどこかに置くのでしょうか?

  • VBA セル上にコードが出現

    エクセルのVBAでマクロを実行すると、エクセルシート上にそのマクロのコードが現れてしまいます。原因が分かりません。ご教授おねがいします。

専門家に質問してみよう