• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:下記作業をVBAマクロを作ってボタンに登録したい)

VBAマクロ作成の質問:行追加、前行コピー、済、保存、終了ボタンについて

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

1段階ことにマクロの記録を取って、コードを印刷して、操作とコードを睨み、対応関係を調べる(考える)ことから始めるべきだと思う。 >ボタンに登録したい これも ・ボタンに登録や ・ショートカットや ・ブックオープン時の自動実行 など 色々考えられる。WEBなど調べること。 ーー また余り初めから、自分以外の人が、このブックやシートを使うことを考慮しない方がよい。抑制的にして、問題・課題を考えること。 操作や入力チェックやガイダンスやデータ保護などのこと。 この点を充実しようとすると、なかなかVBAの範囲でも難しいことに直面する。 特に他ソフトとの連携などは、素人はすぐ持ち出すが、本当は難しい。 VBAを何年もやってからにすべきだ。 ーー こんな要望の仕方だと、ソフト業者に発注するようなことの、極くスモールな 事になってしまうだろう。あるいはVBAスクールで勉強するとか。 ここは、無料の回答コーナーとはいえ、ソフト作成には、原材料はないとはいえ、コードを作成するのは、作成時間やテストデータを作成するには時間がかかるのです。これを無料の範疇と捉える考えこそ、問題と思う。やりすぎではないか。 このコーナーには、VBAの課題の丸投げは禁止かなと思っていたが、現状は、緩んでいるようだ。 もっと行きずまった点や前に進めない個別の質問に絞って、質問すべきでしょう。 OKWAVEには、スモールソフトの作成依頼は認めているのかな。

関連するQ&A

  • (VBA一部使用中)手作業部分を減らしたいです・・

    こんばんは、 EXCEL2010を使っています。 A.xlsm B.xlsm C.xlsm BOOK1.xlsx ~ BOOK10.xlsx(ファイルごとに行数はバラバラ、列数はA~Dで固定) というファイルがあり、すべて開いている状態です。 使用しているのはすべてSheet1のみです。 1.BOOK1.xlsxのA~D列を手動でコピー 2.A.xlsmのA~D列にBOOK1.xlsxのA~D列を手動で貼付け macro1というマクロを実行(A~E列をマクロでB.xlsmのA~E列にコピー&貼付け) 3.B.xlsmでmacro2というマクロを実行(I1~K1に数値が出現、マクロでコピー状態) 4.C.xlsmのB18~D18に手動で貼付け 5.1に戻ってBOOK2.xlsxで以下同じ作業   C19~D19に貼付け   これをBOOK10.xlsxまで続けて保存 これをA,B,Cのファイルを使用したまま マクロを使って簡略化することは可能でしょうか? (例えばボタンを押したら1~4までを自動でやってくれるような) よろしくお願いいたします。

  • エクセル 行を追加したら自動マクロでコピー

    A列に行を追加したら自動マクロで(1)と(2)を行いたいのですが、 どのようなマクロを作成すれば良いのでしょうか? (1)C1列~E1列を選択 (2)C1列~E1列をオートフィルで下までコピー

  • 【マクロ】初心者です。色々教えていただきたいことがありますのでご教授く

    【マクロ】初心者です。色々教えていただきたいことがありますのでご教授ください。 やりたいことは下記になります。 元データ A B C 1 2 3 4 5 6 新データ D E F 3 1 2 3 1 2 6 4 5 6 4 5 かなり簡略化で書いていますがやりたいことを記述していきます。 (1)マクロの記述しているブックのシート1にボタンを作成する。 ボタンから別のブックの元データ(CSVファイル)を選択。 元データのブックのシート1をマクロブックのシート2にコピーします。 コピーデータを加工、修正していきます。 (2)次に列のデータを入れ替えます。 これは法則がないので一行目の行をみて判断します。 (ex.C行の列ならD行に挿入する) (3)列を入れ替えた後、 3 1 2 6 4 5 になっていますがこれを 3 1 2 3 1 2 6 4 5 6 4 5 というふうに一行を二行にしていきます。 (4)最後にorder byします。 1、3、2列目の順にorder byします。 以上がやりたいことになります。 特に(1)がよくわからずボタンを使用時に 別ブックのデータをコピー、貼り付けるのは どうしたらいいのでしょうか? どなたかご教授ください。 よろしくお願いします。

  • エクセルVBA、マクロについて教えてください。

    https://box.yahoo.co.jp/guest/viewer?sid=box-l-62itttdrrgzrvsaxkvu53tmg3a-1001&uniqid=d4c90186-7ae6-4c7a-8f04-a499509147fc&viewtype=detail サンプルブックを見て頂きたいのですが、シートに分けておりますが、それぞれ別ブックとなります。 エクセルブックAにはシート1-シート10まであります。 ブックAのデータをVBAを使って、ブックBに転記したいのですが、 今はVBAがわからないため、作業列、関数を使って読み取っているのですが、検索をかけると、とても遅いため、関数を消すと早く検索が出来たため、VBAでデータを転記出来たらいいなと思っております。 いくつか条件があるのですが、 ブックAのAQ-ATが作業列としており、 ブックBのG-Uまで関数を入れております。 G4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,G$2) H4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A5,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,H$2) I4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,I$2) 同じような関数をG-Uまで入れております。 このような関数を入れております。 E4==VLOOKUP(A4,'[ブックA.xlsx]シート1'!$B:$AC,28,FALSE) この関数をなくすとAdvancedFilterが早くなるので、ここの部分を転記出来たらと考えております。 ブックAとブックBはブックAのB列のコードとブックBのA列のコードが一致すれば、転記すると言った感じです。 決まっている部分は、商品コードは重複しないのと、ブックAのB列は結合されております。 結合セルのため、作業列を使用しておりました。 ブックAの基準をかえずに転記できる方法があればおしえてください。

  • Excel VBA 外部データ(CSV)の自動読込について 

    VBAに関して昨日基本書を読み始めたばかりの初心者です。 業務の効率化が急務であるという手前勝手な都合により、 さっそくの他力本願で失礼とは思いますが 以下のケーススタディについてアウトラインだけでも助言をいただけないでしょうか。 帳票[yyyymmdd].csv ←末尾に年月日 日毎にCSVファイルが存在する A1:A10 B1:B10 C1:C10 の範囲の値を 期間集計.xlsx のそれぞれシート別のyyyymmdd列1行~10行にコピーする sheet1の[yyyymmdd]列1行:10行 ←A1:A10の値 sheet2の[yyyymmdd]列1行:10行 ←B1:B10の値 sheet3の[yyyymmdd]列1行:10行 ←C1:C10の値 過去数年分の日毎帳票を一括で自動処理したいと思い、 マクロの記録機能を使用したのですがどうしてもうまくいきませんでした。 特にわからないポイントが ・CSVファイルを開かずに参照する処理  (Excelで開かずにどうしてセルの範囲を指定できるのかという矛盾が生じてる気はするのですが・・・) ・自動的に帳票[yyyymmdd].csvを昇順に参照する処理 ・それをyyyymmddに対応した列にコピーする処理  以上のVBA処理についての助言をいただけますようよろしくお願いします。 Excelのバージョンは2007です。

  • 最終行に貼り付けるマクロ

    個人の住所録ブックAがあります。 1行目 作成日 郵便番号 住所 名前  です。(これは常に1行です) この1行をコピーして、共有のブックBに追加して保存したいのです。 共有のブックBは、パスワード(****)があります。 そして、これまでのデータが入っています。 その最終行を検索して貼り付けるマクロを教えてください。 エクセル2003です。 よろしくお願いします。

  • エクセル:マクロの起動条件

    お世話になります。 以下の条件でのマクロを起動する方法、及びそのマクロを教えてください。 《条件》 ブックを開いた時、あるシートのC列でデータが入っている最下行の行番号とA列のデータが入って最下行の行番号の差が100以下だった場合、マクロを実行する。 (なおC列の行番号の方が必ず大きいです) ちなみに実行したいマクロは1~6の手順です。 1.ブックを開いたとき 2.「入力用」という名前のシートのC列でデータが入っている最下行の行番号とA列のデータが入っている最下行の行番号の差が100以下だった場合 3.「入力用」というシートにかかっているシートの保護をはずし 4.データが入っているC列の最下行のA~Z列を選択して、50行分 下にコピーする。  (例えば、C列の最下行が350行の場合、A350~Z350まで を選択したあと400行まで下にコピーする。) 5.再度シートの保護をかけ 6.A列でデータが入っている最下行の1つ下のセルを選択する ちなみに、2の条件に当てはまらないときはマクロを実行しません。 またC列の最下行よりA列の最下行が大きい数字になることはないはずですが、もし同じかA列の方が大きい場合、「エラー:C列よりA列が大きくなっています」と画面に表示させたい。 なお、行番号の差:100、選択するA~Z行、50行分下にコピー は変わる可能性があるので、修正する場合どの部分を修正すればよいかも教えてください。 よろしくお願いします。

  • 今日の日付が入った行のデータを取得するマクロ

    エクセルで別のブックに入っているデータを今日の日付が入っている行にコピーする、あるいはその行から貼り付けるマクロを教えてください。 具体的には例えば、 1)日付が順番にBook1 A列に縦に並んでいます。 Book 2にあるA1:D1のデータをBook1のA列にある本日の日付の横、例えばA10にあるとすればB10:E10にコピー・貼り付けしたい。 2)同様に日付が順番にA列に縦に並んでいて、本日の日付がA10にあり、B10:E10のデータをそのひとつ下のB11:E11にコピー・貼り付けしたい。 宜しくお願いいたします。

  • エクセルのマクロ(行を挿入し連番を振る)

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? A列2行目から 書類a 書類b 書類c 書類d 書類e C列2行目から 5 3 2 4 3 と入っています。C列は各書類の枚数です。 ボタンを押すと書類aと書類bの間に4行空白行が挿入され、A列とC列は増やした4行にそれぞれ書類a、5がコピーされ、B列には2列目から6列目まで1.2.3.4.5と連番が振られる。 というマクロです。 B列C列で1/5 2/5 3/5 4/5 5/5 であるという表現がしたいのです。(/は入りません) 書類が1枚の場合はB列C列共に空白で1/1とは入りません。 C列に入る書類の枚数により行が挿入されその書類の枚数分の連番が振られるようなマクロが作りたいです。 毎日何百行も手作業で挿入しコピーし連番を振る作業をしています。 決まった行数を増やすとか上の行をコピーするマクロならわかるのですが、C列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。

  • EXCEL2010マクロ「繰り返し作業」の方法

    EXCEL2010 で「繰り返し作業」を行うマクロを組みたいのですがうまくいきません。どなたかご教授ください。 作業内容は下記の通りです。 【作業内容】  ・「B3:C3」をコピーし、「E4:F4」へ値化で貼り付け後、   「E4:F4」を印刷する。  次に、  ・「B4:C4」をコピーし、「E4:F4」へ値化で貼り付け後、   「E4:F4」を印刷する。  次に、  ・「B5:C5」をコピーし、「E4:F4」へ値化で貼り付け後、   「E4:F4」を印刷する。   ※商品が、無くなるまでくり返す。 (補足事項)  ・商品件数、数量は日々変動致します。  ・貼り付け先は全て同じです       B列  C列 E列 F列 3行目 商品A 500個 4行目 商品B 400個 商品A 500個 5行目 商品C 300個 6行目 商品D 200個 7行目 商品E 100個 以上、よろしくお願いいたします ※OKWaveより補足:「富士通FMV」についての質問です。