• ベストアンサー

任意の1行を選択していないと実行できないマクロ

Wendy02の回答

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

こんにちは。 #1さんのマクロで解決すればよいのですが、私には、見えていない部分がありますね。 ・「任意の行番号をクリックしてまるまる1行選択」してから、    ↓ ・「切り取る」「別のシートに挿入、貼付ける」というマクロを実行しています。 理屈としては理解できるけれども、コードの論理が考えると、少しへんです。 >「任意の行番号をクリックしてまるまる1行選択」 なぜ、そんな条件が必要なのでしょうか?マクロでは、「特定のセルひとつ」でも、そのあとのコードで、行全体に切り替えられます。 (ActiveCell.EntireRow) ActiveCell は、必ずひとつです。その行全体なら、それで目的は得られるはずです。 「別のシートに、貼付ける」であって、「別のシートに『挿入』、貼付ける」の『挿入』の詳細が分かりません。これを元に考えていただいても良いです。 これは回答ではありません。単に、考えていただくSampleです。 Sub TestCopySample()  If TypeName(Selection) <> "Range" Then    MsgBox "そこは、セルではありません。", vbInformation    Exit Sub  End If  With ActiveCell.EntireRow    If Application.CountA(.Cells) = 0 Then     MsgBox "その一行にはデータはありません。", vbInformation     Exit Sub    End If      'この部分は、97用/ 97は、1 Line のCutメソッドがうまくいかない経験がある。    If Application.CountA(Worksheets("Sheet2").Range("A65536").End(xlUp)) = 0 Then     .Copy Worksheets("Sheet2").Range("A65536").End(xlUp)    Else    .Copy Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1)    End If    .ClearContents  End With End Sub 「1 Line のCutメソッドがうまくいかない。」でなければ、   ActiveCell.EntireRow.Cut 目的の場所のセルの左端 で良い。

gure_s
質問者

お礼

こんにちは。大変勉強になりました。 特定のセルを選択していればマクロで行全体に切り替えられる、というのはとても魅力的です。ぜひ活用していきたいと思うのですが、まだまだ初心者なのでこれから頑張りたい所です。 別のシートに『挿入』して『貼り付け』というのは切り取った1行分の情報を、消さずに全て残していきたいからです。(『挿入』ではなく空白行に貼り付けていく、でもOKなのですが)こんな説明でもお分かりになるでしょうか…。 指示していただいたコードだと同じ場所に上書きされてしまいますよね。 上手いコードの作り方を研究していきたいと思います。どうもありがとうございました!

関連するQ&A

  • 選択中の行に「行」を挿入するマクロ

    エクセルのいちばん左(1から数字が縦に並んでいるところ)の任意の 数字を選択してその行を全選択しておいた状態でマクロを実行すると、そこに1行挿入するプログラムを教えてください。

  • マクロで行の別シートから追加をする

    いくつか探してみたのですが 見つからなかったので教えてください excelでマクロを作成したいのですが その際に行の挿入を行いたいと考えています。 それで、今現在考えている条件が ボタンを作成し、クリックすることによって実行したい 挿入する行数を任意に変更したい これらを別のシートから行いたい(例、sheet1でボタンを設置し、sheet2で実行する) 申し訳ないですが 教えてもらえないでしょうか。 よろしくお願いします。

  • マクロでの行選択

    Excelのマクロについて質問です。 例えば、A1~A5セルをセル結合したときに、3行目~5行目を行選択 しようとしたときに手動で行なうとうまく選択できるのですが、マクロ で実行するとなぜか結合されている1行目から5行目が選択されて しまいます。 具体的に以下のようなマクロを書きました。 Rows.("3:5").select 手動のみでマクロ化は無理なのでしょうか? 今のままですと、一回連結をといてセルを選択して処理を実行、その のちにセルを再び連結させるということをやらなければいけなくなって しまいます。

  • Excelマクロ:選択したセルに通し番号を入れたい

    任意のセルを選択している状態で、マクロの実行をすると左上から下へ、一番したへ来たら次の行の一番上から通し番号を入れるというマクロを作りたいのですが、どのようなコードを書けば良いのでしょうか?

  • 【マクロ】任意の行の下へ行の挿入&選択

    セルA3:DS750の表があります。 1行=1顧客として使用していますが、度々表に行を挿入して顧客を追加しています。 その為、以下のマクロを作ってみたのですが、最後に【挿入した行をActiveにする】事ができません。 ★挿入位置は、都度変わります。 ★一度に行う挿入行数は1行(多くても3行)の為、マクロは1行追加で作成しています。(行数の指定までは力量により出来ませんでした・・) ★1行目にサンプルを(非表示で)置いて、それを任意の行へ挿入させています。 1行目のサンプルを非表示のまま貼り付けると、挿入した行も非表示になってしまったので、一度再表示させてから処理させています。 サンプル行には、条件書式、数式などがところどころ入っています。 処理の最後に【'行を指定して挿入】と同じ行をActiveにする方法が知りたいです。 記録マクロをいじっただけなので見づらいと思いますが、よろしくお願い致します。 -------------------------------- Sub 挿入() '1行目を再表示 Rows("1:1").Select Selection.EntireRow.Hidden = False '1行目をcopy Rows("1:1").Select Selection.Copy '行を指定して挿入 InsertRow = InputBox("何行目の下に挿入しますか?") + 1 Cells(InsertRow, 1).Insert Shift:=xlDown '1行目を非表示 Rows("1:1").Select Selection.EntireRow.Hidden = True '挿入した行をactiveにする ・・・ end Sub -------------------------------- マクロが根本的におかしかったらすみません。。 アプローチ方法が他にある場合にもご指摘いただけると助かります。

  • エクセル:シート1のセルA1が0でなければ任意のマクロを実行したい

    エクセルマクロ(VBA)初心者です。よろしくお願いします。 (1)エクセルのsheet1のセルA1の値が”0(ゼロ)”でなければ、そのシート上で任意のマクロを実行し、ゼロであれば実行せずにsheet2へとぶ (2)同じようにsheet2のセルA1がゼロでなければ実効し、ゼロでなければsheet3へとぶ・・・の繰り返し(sheet50まであります。) このようなマクロ(標準モジュール)の書き方を教えてください。 よろしくお願いいたします。

  • マクロで条件に合った行の選択について

    マクロで条件に合った行の選択について 例えばA列から条件に合ったデータを探すとき、 条件の行が複数、点在しておりそれらをすべて選択した状態にする (Ctrlキーとクリックでそれらの行を選択した状態) というようなものができますでしょうか? エクセルの機能のフィルタを使えば抽出が可能なのは存じておりますが マクロとして記述する時、可能か否かお聞かせください。 宜しくお願いします。

  • 行の挿入ができなくなった

    win8.1 エクセル2010ですが、 行を1行選択して、右クリックで挿入しようとしたら 画像のようなエラーが出ました。 なぜ1行しか選択してないのにこの画面が出るのかわかりません。 シートの最終行は130行なので、多くないと思います。 パソコンを再起動させても、同じエラーが出ました。

  • 「新しいマクロの記録」機能を使っての行挿入

    「新しいマクロの記録」機能を使って1行と2行の間に10行の空白行を挿入後、A13のセルを選択というマクロを作りました(マクロ1とします)。このマクロを実行すると1行と2行の間に10行の空白行が挿入された後、A13が選択されます。ここでもう一度、マクロ1を実行すると1行と12行の間にさらに空白行が10行挿入されA13が選択されます。このようになるのは当たり前と言えば当たり前なのですが、2回目にマクロを実行したときに12行と13行の間に10行の空白行が挿入された後、A24が選択されるようにするには、どのようにマクロを記録すればよいのでしょうか?  ようは、10行の空白行を挿入した後、セルを11行下に移動させるというマクロを作りたいのです。VBAの記述方法はほとんど分からないので「新しいマクロの記録」機能を使うことを前提にご教授ください。

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。