• ベストアンサー

マクロ

エクセル2003で、マクロ組んだのですが、どうもうまくいきません。 ドロップダウンリストにて選択された任意のデータを含む行を削除 したいのです・・・。あとすでに入力されたワークシート上のデータの 追加や変更などもどーも上手く作動しません・・。どなたかご存知の 方、ご協力おねがいします。

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

Dim select_line As Integer select_line = 10 Rows(select_line + 1).Select Selection.EntireRow.Delete ただ削除するだけなら、上記処理で大丈夫ですよね。 select_line:選択した番号 どこで、困っているのでしょうか? 推測ですが、削除してしまうと、通し番号が崩れるということ でしたら、通し番号を付け直すしかないですね。 通し番号をそのままにするのであれば、 Dim select_line As Integer Dim target As String select_line = 10 select_line = select_line + 1 target = "B" & select_line & ":AG" & select_line Range(target).Select Selection.Delete Shift:=xlUp でしょうか? もちろん、この処理のあとは、ドロップダウンを更新しなきゃね。

Harc-n
質問者

お礼

kokoroneさんありがとうございます。思いどうりになりました。独学でマクロをやってるものでなかなか思うようにできないんです・・・。 もしまた「何、やってんの?」っていうのが目に付きましたらアドバイスいただけるとありがたいです。

その他の回答 (1)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

『どーもうまくいきません』 では、回答者は、どこがどうなっているのか、わかりますか? 削除する・追加する場合、行・列のポインタ・行数が操作する 度に変化します。 削除する場合は、降順に処理、挿入する場合は、昇順に処理するのが 基本です。

Harc-n
質問者

補足

すいません・・説明不足でした。 あるデータ入力用のエクセルソフトを作成しました。B1~AG1までのセルにはそれぞれ項目が入ってます。入力のダイアログでB2~AG2まで順次データが入力されていきます。その後はB1000~AG1000までデータが入力されていきます。と同時にA2~A1000には各行にデータが入った時点で通し番号がふられる様に作ってあります。 この通し番号をドロップダウンリストで選び出し、その通し番号のついている行を削除したいのですが・・・

関連するQ&A

  • マクロ中です

    今エクセルでマクロを勉強してるんですが、ドロップダウンリストという用語はどういう意味なのでしょうか?教えてください

  • ExcelのマクロによるVLOOKUPの参照シートの変更について

    ExcelのマクロによるVLOOKUPの参照シートの変更について ブックAのSheet1のセルA1にドロップダウンリストを作成し、アルファベットの"J"、"M"、"A"が選択できるようにしてあります。 ブックAのSheet2のセルB1には、以下の式が入力してあり、別のブック(ブックB)から情報を読み込んでいます。 =VLOOKUP(A1,'¥¥s_g¥欠席¥[ブックB.xls]国語'!$B$4:$V$30,4,FALSE) やりたい事は↓ ブックAのSheet1のセルA1にある、ドロップダウンリストを変更すると、ブックAのSheet2のセルB1にある式(上記式)の参照シート(上記式では「国語」の部分)が変更さえるマクロを作りたいのですが、うまくできません。 ちなみに、ドロップダウンリストの"J"を選択した場合は、ブックBのシート"国語"を参照し、リストの"M"を選択した場合は、ブックBのシート"数学"を参照し、リストの"A"を選択した場合は、ブックBのシート"美術"を参照するようにしたいです。 よろしくお願いします。 また、マクロを使わずして出来るようでしたら、その方法も合わせて教えて下さい。

  • エクセルでデータがあるシートだけ印刷するマクロ

    エクセルのマクロで印刷するマクロを使っていますが、5つある ワークシートを全て選択して印刷するマクロでこれをデータ(数値)が 入っているワークシートだけ印刷するマクロにしたいのですがどのようにすればいいのでしょうか?

  • エクセルVBAでメール送信

    エクセルのワークシートから、メニューの、「ファイル」、「送信」、「あて先」で現在のシート記載事項をメール本文として送信できますが、その際、ワークシート上のオブジェクトを自動で削除するためにはどうしたらよいでしょうか? やりたいことは、ワークシート上のドロップダウン等で選んだ定型の文言(ドロップダウン操作により、自動的にシート上に表示されます。)だけを任意のアドレスにメール送信したいということです。現状ではドロップダウン自体やボタンまでメールに添付され、手動で削除しなくてはなりません。

  • 【マクロ】オートフィルター内の全データが削除される

    こんにちは、質問させていただきます。宜しくお願いします。 [エクセル] 2007 [内容] オートフィルタをかけ任意のデータのみ消したいのですが 全てのデータが消えてしまいます。 [詳細] A1~C5までデータが入っているのもだと仮定します。 (実際には項目があってフィルタがきちんとかかるものとします。)    A   B   C ----------------------- 1  ○   2個  \10 2  △   1個  \5 3  ×   3個  \15 4  ○   1個  \20 5  ○   4個  \5 オートフィルタをかけA列を基準として「○」を選択します。 そして選択した「○」を含む行(1行・4行・5行)を削除し 2行・3行目が残るようにしたいです。 その一連をマクロにして処理したいのですが… 1行から5行のすべての行データが削除されてしまいます。 <マクロ作成> マクロを記憶する。 ↓ 手動でオートフィルタをかけ、「○」を選択して行を削除 ↓ マクロの記憶を終了。 ↓ マクロ文の削除する行範囲をA1からC5に書き換え ↓ マクロ実行 <マクロ作成文>  Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="○" ActiveSheet.Range("A1:C5").Select Selection.Delete Shift:=xlUp ※エクセル2007のバージョンによっては選択した「○」のみ 削除されるPCもありましたので、何か設定があるのかな?と 思いましたが…解決しませんでした。 何か良い案があれば教えていただきたいです。 宜しくお願い致します。

  • エクセルのドロップダウンリストの行の高さについて

    エクセル2007のドロップダウンリストの行の高さで、困っています。 「データの入力規制」で、現在は4行のドロップダウンを作っています。 検索でいろいろと調べると、ドロップダウンのリストの1行の高さは、親のセルと同じ高さに なっているようです。 自分の作った4行のドロップダウンは、4行で親のセルと同じ高さになってしまい、 非常に文字が小さくなっていて、読みにくく実用になりません。 エクセル2007のどこかの設定で、このように制限されているのでしょうか? 通常のように、ドロップダウンのリストの1行の高さを、親のセルと同じ高さにしたいので、 そのやり方を教えてください。

  • エクセルマクロで教えてください。

    エクセルのマクロで、自動処理で、「Sheet1」を削除しようとしました。 しかし、削除しようとしたマクロを実行すると下記のメッセージが毎回出てしまいます。メッセージを出さない方法はありますでしょうか? メッセージ:選択したシートに、データが存在する可能性があります。データを完全削除するには、・・・・・」

  • マクロのダイアログボックスの表示について

    マクロを組んでいないのに、エクセルのファイルを開けると マクロを有効にするかどうかを聞かれます。 ツールバーのマクロの所にも何もありません。 心当たりは、入力規則の設定で、ドロップダウンからリストを選択するという設定をした位でしょうか。 ファイルを開いた時にマクロのメッセージを消す方法を教えて下さい。 それとも、入力規則を設定すると、出るのが普通なのでしょうか? エクセルは2000を使用しています。よろしくお願いします。

  • マクロによるインポート

    アクセス初心者です。仕事でデータベースを作っているのですが、簡単な物がようやく完成しそうなのですが・・・。だた1つ、マクロを使ったインポートが上手く作動しません。エクセルからアクセスのテーブルにインポートさせたいのですが、マクロでワークシート変換→エクセルからアクセスへの指示を入力し、パス自体も間違えてはいない様なのですが、インポート元のエクセルシートを開いた状態でしかテーブルが更新されません。閉じた状態でマクロを動かしても、エラーメッセージは出て来ないのですが、いざテーブルを開いてみても、インポートされていないのです。更新する前にデータが重ならない様に、テーブルを削除してから、新たにインポートさせる指示にはしてあります。エクセルを閉じた状態でインポートさせるにはどうしたら良いのでしょうか?分かりにい文章で申し訳ありません。どうかお願いします。

  • エクセルのマクロのコピーについて

    私はあるエクセルデータを持っているのですが、そのデータはマクロが組み込まれているらしく、開いたときには『セキュリティの警告』でマクロを有効化しなくてはいけないデータです。 ちなみに、このマクロ自体はセル(4列12行以上のセル)を選択すると、写真を選択するウィンドウが立ち上がって、そのセルにリサイズされた写真が挿入されるといったものです。 そのエクセルのデータの「VBAProject」を見てみると、各シート毎にプログラムが入っています。しかも、シート名がそれぞれ入っています。(私は詳しくないのですがそういうものなのかもしれません) このマクロをそのまま別のエクセルデータでも使えるようにするにはどうすればいいのでしょうか? 色々とネットで調べたら、 1.マクロのセキュリティを下げる 2.新しいエクセルを立ち上げてドラッグする などとありましたが、よく分かりませんでした。 申し訳ないのですが、教えていただけるとありがたいです。 どうかよろしくお願いします。