エクセルのマクロの使い方について

このQ&Aのポイント
  • エクセル2010を使用している初心者がマクロの使い方について悩んでいます。マクロを使うことで手作業が簡単になることを実感していますが、保存先や実行範囲の設定がうまくできません。
  • 起動時に特定の範囲のセルを削除して新たに入力できる状態で起動させたいと思っていますが、他のシートやブックに影響が出てしまうため、設定方法を知りたいです。
  • マクロの保存場所や使用するシートを使い分ける方法も気になっています。初心者には汎用性のある設定よりも、特定のシートでのみ使える設定方法を教えてほしいです。
回答を見る
  • ベストアンサー

エクセルのマクロの保存先(マクロ初心者)

エクセル2010を使用しています。 最近必要に迫られてマクロを勉強し始めたばかりの超が付く初心者です。 今まで何年間も、手作業でやっていた作業がマクロで簡単、確実に実行できることがわかり、少しずつ使い始めました。(確かに便利で色々使いたくなっています) が、1つ問題に気付きました。 「保存先」の使い方が良く理解できません。 Auto_Open マクロが当方の使い方では非常に便利で使いたいのですが、今の当方のマクロの知識では大きな誤り(意図しない動作)に気付きました。 例えば起動時に、Sheet1の特定の範囲(A1:C5)のセルを削除して新たに入力出来る状態で起動させるようにした場合、Sheet2で保存したらSheet2の(A1:C5)のセルの内容が削除されて起動してきます。 つまり目的としないシートでも実行されてしまいます。 当方のような超初心者の場合、汎用性があるような使い方では意図しない作業が実行されてしまい非常に危ないと思います。 そこで、他のBookやシートに影響しないような設定の仕方を教えて頂きたいのです。 マクロに汎用性を要求するのは次の段階だと思います。 「個人Book」とか、「開いている・・・」とか「作業中の・・・」とか色々のマクロの保管場所があり、これを使い分けておられると思いますが、当方の場合、まずはこのシートでこれがしたい、だけで良いのです。ウッカリ意図しない動作されると非常に困ります。 どなたかこのような場合の対処教えてください。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.7

>Sub Auto_Open() >Range("A6:D9").ClearContents >End Sub >これだと開いてきたSheetが対象になってしまう事に気付いたので >質問させていただきました。 その通りです。 ご呈示のコードではRangeの値を削除しているだけですので、 シートの指定が省略されています。 エクセルVBAではシートの指定を省略した場合に、 アクティブ(選択中)なシートが対象となります。 Worksheets("シート名").Range ~~  →シート名を指定してセル範囲を指定 Workbooks("ブック名").Worksheets("シート名").Range ~~  →ブックとシート名を指定してセル範囲を指定 など、ほかのブックやシートがある場合に意図しない動作を する可能性があるのであれば適切に支持してあげる必要があります。 >自動マクロは下の3行(正確には1行)です。 >他にも3行程度の自動マクロも試しているのですが、 >危ないのでTESTのみで止めています。 >更には開いている .xlsm Bookにマクロにウッカリ感染?しないか >等々心配になってきています。 ご自身で作られたものなので、ブラックボックス化しないように コードのコピペだけではなくコードの意味を調べ、 作成したマクロの動作を把握して使用することが大切です。 VBAにはマクロの挙動を1行1行確認する方法として「ステップアップ実行」が ありますので、活用してみてください。 http://plus1excel.web.fc2.com/learning/l301/t405.html

akira0723
質問者

お礼

ありがとうございました。 上記非常に参考になります。 少しずつマクロに慣れていこうと思います。 また宜しくお願い致します。

akira0723
質問者

補足

>Workbooks("ブック名").Worksheets("シート名").Range ~~ ありがとうございます。 先ずは上記から始めてみて、マクロに慣れたいと思います。 助かりました。

その他の回答 (7)

回答No.8

Auto_Open は使い勝手がどうでしょう、とも思いますし、 その他にも色々あるんですが・・ま、置いといて本題。 Sub Auto_Open()     Worksheets("シート名").Range("A6:D9").ClearContents End Sub あるいは Sub Auto_Open()     Worksheets("シート名").Select     Range("A6:D9").ClearContents End Sub で「当面は」解消できると思いますよ。 > そこで、他のBookやシートに影響しないような設定の仕方を教えて頂きたいのです。 > マクロに汎用性を要求するのは次の段階だと思います。 いえ、シートの指定は基本中の基本です。 多分、Auto_Openは「次の段階」のそのまた次の段階以降の話でしょうね。 > 「個人Book」とか、「開いている・・・」とか「作業中の・・・」とか 記録機能の話でしょうか? 現段階では特に深く考える必要も無いのでは?が正直なところ。 「このブックだけで使えたらいいや」⇒作業中のブック 「あ、これは他の何かに応用できるかも」⇒個人用マクロブック 程度のものですよ。 他人に配布してマクロを生かしたい場合は必然「作業中のブック」です。 > ウッカリ意図しない動作されると非常に困ります。 シート・ブックの保護機能はご存知ですか? マクロを使うより手軽ですから、調べてみると良いかもしれません。 例えば   https://support.office.com/ja-jp/article/%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E4%BF%9D%E8%AD%B7%E3%81%99%E3%82%8B-7e365a4d-3e89-4616-84ca-1931257c1517 こんな感じで情報が出てきます。 マクロに手を出す前に「エクセルで出来ること」を覚えておいた方が良いですよ。 何でもかんでもマクロ・・というのは正直オススメしません。 マクロを怖がるユーザーもいますからね。 まぁ、私見ですけどね。

akira0723
質問者

お礼

本当にありがとうございました。 次の機会にも是非とも宜しくお願い致します。 他のご回答者様にも多くのお手数をおかけしました。

akira0723
質問者

補足

>「このブックだけで使えたらいいや」⇒作業中のブック >「あ、これは他の何かに応用できるかも」⇒個人用マクロブック >程度のものですよ。 ご回答ありがとうございます。 当方の悩みの種(何となく不安)が上記の回答でスッキリしました。 Auto_Openが他のシートにも影響することから、「作業中のブック」=その時に作業している(=開いている)全てのブックが対象に動作してしまうのではないかと・・・ テストで実行してみても今一確信が持てなかったので「これは危ない」と思い質問させていただきました。 当方の知識が乏しいばかりに多くの皆様にお手数をおかけしてしまいました。 当面は教えて頂いたように、作業中のブック、さらにはSheetを指定して、マクロに慣れようと思います。 次の機会にも何卒宜しくお願い致します。 尚、当方はエクセルへの入力ミス防止に取り組みだしており、ブックやセルの保護機能やリンク参照、ワードへの(自動転記)等は既にいたるところで使用しているのですが、最近マクロの必要性を感じて勉強し始めたばかりの超初心者ゆえの質問でした。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.6

質問者さんはこんがらがっているようですね。 (1)該当のブックを開く (2)エクセルメニューより「表示」→「マクロ」と選択 (3)マクロ名「auto_open」を入力し「作成」を選択  ・マクロの保存先は「作業中のブック」としてください (4)以下のコードを記述(すでにSub auto_open()~End Sub)は記述済み Sub auto_open() Worksheets("Sheet1").Range("A1:C5").ClearContents End Sub (5)コードの入力画面(VBE)を右上の「×」で終了 (6)ブックをxlsmまたはxls形式で名前を付けて保存(これらはマクロがブックに保存できる形式) この手順で作成すれば(3)の作成時に、(1)で開いたブックの標準モジュール(自動作成)のauto_openプロシージャ(一部自動記入)にご自身の追加されたコードが記録されて保存されます。 ブックには標準モジュール以外にもシートモジュール、thisWorkbookモジュールなど、マクロのコード(VBA)を記述する場所が複数あります。 今回のauto_openプロシージャは「標準モジュール」に記述することで、マクロが保存されたブック(=標準モジュールにauto_openプロシージャが記述されたブック)が開くと実行されます。 この時、(4)で記述したコードが実行されますので、シート名が「Sheet1」のセル範囲「A1:C5」の値が削除(ClearContents)されます。 ですので、たとえSheet2があろうが、ほかのブックが同時に開いていようが、Sheet1という名前のシートがほかのブックにあろうが、プロシージャ名「auto_open」が記述されたブックを開けば、同ブックのSheet1のA1:C5が値削除されます。 なお、こちらのコードでは単にシート名を指定して範囲の値削除をしていますが、 ・シート名がSheet1からSheet3に代わる可能性がある   →シート名の指定ではなくて、左から何番目のシートのような指定方法にする ・シートの並びが変わる可能性がある   →シート名や順番の指定ではなくて、特定のセルに特定の文字が入っているシートのような指定方法にする など、条件や用途によってコードは適切に変更しないといけない場合があります。 現在記述されているコードのサンプルを記載していただき、シートの要件、問題になっている事柄を具体的に記載していただければより適格な回答が得られるかと思います。 先ずは、マクロの記述する場所やその挙動、ブック、シートの指定方法、などを勉強してみてください。 http://officetanaka.net/excel/vba/beginner/10.htm

akira0723
質問者

お礼

ありがとうございます。 当方の無知のせいで、お手数をおかけしましたが、皆様のおかげでようやく全貌?が理解できました。 本当に助かりました。 これから、コツコツとマクロを使い慣れていきたいと思います。 次の機会にも何卒宜しくお願い致します。

akira0723
質問者

補足

ご回答ありがとうございます。 上からザァと読ませていただいて出来そうな感じがします。 尚、当方が苦労して作成した、自動マクロは下の3行(正確には1行)です。 他にも3行程度の自動マクロも試しているのですが、危ないのでTESTのみで止めています。 Sub Auto_Open() Range("A6:D9").ClearContents End Sub これだと開いてきたSheetが対象になってしまう事に気付いたので質問させていただきました。 更には開いている .xlsm Bookにマクロにウッカリ感染?しないか等々心配になってきています。 主目的は作業の簡略化ではなく、誰もが意識しなくても間違わないような仕掛けを自動化することです。 すでに手動ではいくつかの簡単な作業のマクロが出来ているのですが現在は封印しています。 当方の現在の状況を考慮すると、同じマクロをBookごとに作成しても良いので他のBookやシートに影響しないような方法(式)が先ずは知りたいのですが。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

改めて、考えた の、ですが VBA の、ソースコードは 何処に、入れてます? ソースコードの、入ってない ブックを、開けても AutoOpenの、コードは 動作、しない 筈 よく、解らない の、ですが 取り、敢えず 指定法を、示します フックを フルパスで、オープンした 其の、後 Sheetを、指定します、 フルパスで、オープン http://shuhho.hatenablog.com/entry/excelvba-25 Sheetを、指定する http://officetanaka.net/excel/vba/sheet/sheet01.htm

akira0723
質問者

お礼

重ねてのご回答に感謝いたします。 ようやく理解できました。 本当にありがとうございました。 次も宜しくお願い致します。

akira0723
質問者

補足

当方のレベルゆえのお手間を取らせて申し訳ありませんが、もう少し教えて頂きたく。 使い始めたのは、下記のような本当に単純なマクロ(とも呼べないような)レベルの話です。 先ず「マクロの記録」で試して、その中身を確認しながら、ここで教わりながら・・・・何とかかんとか、ファイル立ち上げ時の削除がうまく行った次第です。最終的にはAuto_Openというマクロ名+1行で出来ました。 よって、ソースコードの意味が分かりませんが、 「ソースコードは何処に、」も有りません。←この答が間違っていないことを祈ります。 トホホ・・・ Sub Auto_Open() Range("A6:D9").ClearContents End Sub ちなみに「ファイルのフルパス」は、¥から始まってxlsmまでのルートの事ですよね? このルートやSheet名を上のマクロの何処にどのように追加するのかが分かりません。 というレベルですので、更に分かりにくくしていたら御免なさい。

  • osahune
  • ベストアンサー率47% (288/609)
回答No.4

>同時に漢字混じりのファイル名も固定する式 上記の言わんとすることが理解できないんですが・・・ 下記のような感じ(しゃれじゃありません^^;)ですか? ’例-漢字ファイル名+作成日とか Dim Save_File, Save_Filename As String '名前を付けて保存するファイル名の初期設定 Save_Filename = "漢字" & Format(Date, "YYYYMMDD") & "-#" & ".xlsx" '-#は同じ日に作成した場合に保存時に任意に(ハンドで)連番付けします '「名前を付けて保存する」ダイアログボックスの表示 Save_File = Application.GetSaveAsFilename(Save_Filename, _ FileFilter:="Excelファイル,*.xlsx") '名前を付けて保存する ActiveWorkbook.SaveAs Filename:= _ Save_File, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

akira0723
質問者

お礼

ありがとうございました。 皆様のおかげでようやく理解できました。 本当に助かりました。 また宜しくお願い致します。

akira0723
質問者

補足

早々のご回答ありがとうござます。 質問が悪く、誠に申し訳なく。。。。 当方の追加事項は恐らく、ご回答のような高度な要求ではなく、既存のファイル(ファイル名が「ABC123   結果入力表」)のSheet1でのみ動くAuto_Openマクロです。 最初は対象をファイル名が「・・・ 結果入力表」のファイル名の全ファイルにしようとしたのですが、これは当方の力量では無理、との判断で、まずは使用頻度の高いBookからコツコツやるかと思い、始めたのですが今回質問のリクスに気付きました。 恐らく普通にマクロを使用している方にとっては当方のレベルが理解しにくいとは思いますが、重ねて宜しくお願い致します。

  • osahune
  • ベストアンサー率47% (288/609)
回答No.3

いつもシート1の特定セルを削除したいならシート1を指定すればよいのでは? 例・・・ Dim sheet1 As Worksheet Set sheet1 = Worksheets(1) sheet1.Activate

akira0723
質問者

お礼

ようやく全貌?が理解できました。 マクロの保存先と実行シートの区別がゴッチャになっていました。 ありがとうございました。

akira0723
質問者

補足

ご回答ありがとうございます。 動作するシートを固定するには、保存先ではなく(ここが勘違いでした)コードで特定すれば良いのですね? 申し訳ありませんが、同時に漢字混じりのファイル名も固定する式を教えていただけないでしょうか? お手数をおかけしますが、仕事で使いたいので宜しくお願い致します。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

削除する のでは、なく 何度も、流用せず テンプレートから 新規オープン、しては 如何、ですか? 例えば フルパスで Sheet名も、含めて 全て 指定する、方法 も、考えられますが が、 運用が大変、 名が、変えられない、 等 利便性が、損なわれます 削除、 其の、ものを 諦めた、方が 良い で、しょうか? ね

akira0723
質問者

お礼

>フルパスでシート名も含めて指定する方法でマクロに慣れていきます。 ありがとうございました。

akira0723
質問者

補足

ご回答ありがとうございます。 お手数をおかけしますが、 「フルパスでSheet名も、含めて全て指定する」方法 を教えて頂けませんか? 仰る通り最初は自分の都合の良いように動くイメージしかなく、便利だと思っていましたが、今は多少利便性を犠牲にしてもやりたいファイルが有るので。 お手数をおかけしますが宜しくお願い致します。

  • f272
  • ベストアンサー率46% (8010/17118)
回答No.1

「ウッカリ意図しない動作されると非常に困ります」というのならAuto_Open などを使うのはやめたほうがよい。マクロを普通に標準モジュールに書いて,実行したいときに手動で実行させれば,意図しないときにマクロが動くことはありません。 Sub ClearContents_A1C5_Sheet1() Worksheets("Sheet1").Range("A1:C5").ClearContents End Sub

akira0723
質問者

お礼

いつもお世話になっております。 ご回答の方法で当面慣れていきたいと思います。 ありがとうございました。 また宜しくお願い致します。

akira0723
質問者

補足

F727-さん いつも大変お世話になっております。 早々のご回答ありがとうございます。 当方も今はAuto_Openは使用しない方が良いと思い、一旦中止しています。 が、使っていきたい背景としては、自分が使用するのではなく、入力作業以外にはエクセルを使用しない複数の人が間違えないためのミスオペ防止策としての活用です。 前回の入力が残っていると、ウッカリデータを更新するのを忘れて前回の数値のまま報告書が作成されてしまう、という問題がたまに発生します。 よって、現在は報告書作成後は、「入力セルは削除してから保存」というルールにしていますが、やはり気配り対策なので、使用後は自動で削除したい、が要求として有ります。ちなみに入力セル以外には保護をかけて有ります。 先ずは、ファイル名(製品名)とシート(Sheet1)を特定して、マクロを実行させられれば良いのですが。 ご回答をみて気付いたのですが、マクロの保存先ではなく、コードで指定すれば良いのでしょうか? ならば どこに、どのようにファイル名(製品名なので、漢字もあり)+Sheet名を入れるのか、式を教えて頂けませんでしょうか? お手数をおかけしますが、よろしくお願い致します。

関連するQ&A

  • エクセルのマクロを教えてください。(初心者です)その2

    エクセルで期間限定で使えるソフトを作ろうと思っています。 簡単に申し上げると、 使用期限を設けて、期限の日がくると、 エクセルのセルに 「有効期限が来ましたので、再度お申し込みください。」 という文章が表示され(ポップアップでなくていいです)、 このシート以外は片っ端からシートが削除され、 上書き保存され、これ以上使えないというものを作りたいのです。 ツールバーのマクロの記録を利用した 極度に簡単なマクロしかやったことがないので、 以下の点を中心にマクロの作成の仕方を お教え頂けますと幸甚です。 (1)有効期限の日付を入力しておいて、その日が来るとマクロが実行される方法 TODAY関数と有効期限の引き算でゼロになったら実行でしょうか。 該当セルの数値がゼロになったらマクロが実行されるという方法を お教え頂けませんか。 ちなみに、有効期限の日付は、非表示にしてシートの保護で開けないようにしておこうと思います。 (2)有効期限が来たら自動的にマクロが実行される方法 上記(1)の方法でやれば、ファイルを開いたとたんマクロが実行されるのでしょうか。 (3)マクロでシートを削除する方法 これは、通常のマクロの記録でやろうとすると、 シートを削除すると「やり直し」でもシートを復活させられないので、 シートがなくなっちゃった状態でしか保存できない気がするのですが・・・。 (4)上書き保存するマクロ 上記(3)と同様、マクロの記録では できないので、これ以外のやり方をお教え頂けませんか。 (5)シートを表示させるマクロ マクロを実行した時点で「有効期限が来ました・・」と入力された シートを表示させたいのです。 マクロで表示させる方法をお教え頂けますでしょうか。 (6)マクロを見れないようにする方法 マクロを自由自在に操れる人が 私の作ろうとするエクセルファイルを手にしたら、 「有効期限になる前にマクロを削除しちゃえ」と やられないかが心配です。 うまい対処方法ございませんでしょうか。 (7)パソコンの日付の操作の対処 上記の(6)と絡むのですが、 パソコンの日付とプロパティーから パソコンの日付をいじって 有効期限より前の日付にしたら ずっと使われてしまうのではないか心配です。 うまい対処方法ございませんでしょうか。 ずぶの素人の私にどなたか この方法をご教示頂けませんでしょうか。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

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

    作業が面倒だし、間違いもよく発生するので、 下の条件のマクロをどなたか教えて頂けませんか? 宜しくお願い致します。 社内のサーバーにエクセルファイル名、AからZまであるとします。 各AからZにそれぞれ同じシート名「集計」があるとします。 そのシート内にデータが色々あるとします。 ある決まったセルだけを削除するのではなく、セルの色だけで判断してデータを削除したいのです。 例えば、赤色のセルになっている部分だけを対象に 入力されている数字を消したいのです(行削除ではなく、単純にデリートです)。 上記をマクロで実行する方法はないでしょうか。 マクロ初心者なので、プログラム言語の下に簡単な説明を頂けると助かります。 どなたか詳しい方がいらっしゃいましたら、宜しくお願い致します。

  • EXCELでマクロを初めて実行してみたんですがぁ・・・・

    初めてマクロというものをやってみました。 ただ、動作を記憶させただけです。プログラムは全然知りません。 sheet1の株価4本値と日付を1日だけ繰り上げる 単純な動きです。一番最後のセルにその日の 日付と4本値と入れて、マクロを実行させて、1日だけ繰り上げる 作業です。 それを、Sheet2が「=Sheet1!B2」このような形で参照するように してあるのですが、実行させると、 Sheet2B2のセルが#REF!とかなんとか表示されて B3からしか正しく表示されません。 以後同じことを繰り返すと、どんどん1つずつセルがエラーして 正しく表示されるセルが下がりながら、減っていってしまいます??? なぜなんでしょうか?? また回避策というか、正しい方法はありますでしょうか?? 何卒、初めてなので、わかりやすくお教えいただけると ありがたいです。 よろしくお願いを致します。

  • Excelでのマクロ作成について

    次のようなマクロをExcelで作りたいのですが上手くできませんでした。みなさんのお力をお借りしたいと思い質問しました。 [質問内容]       A        B        C 1 20030303120000 2 3 20030406120000 4 5 20030512120000 6 7 このようなシートで、セルA1の内容を「03/03/2003」に変更して行2を削除する。(セルの内容ではなく行そのものを削除する。) この作業を繰り返して次のようなシートにする。      A        B        C 1 03/03/2003 2 04/06/2003 3 05/12/2003 4 5 ひとつのマクロを繰り返し実行するのでも構いませんが、数が多いのでできれば100行程度を一度に実行できれば助かります。 よろしくお願いします。

  • エクセルマクロのことです

    通常使っていたマクロを間違えて消してしまい、その上再構築できなくて困っています。 こんなマクロだったですが。 ブック内に複数のシートが入っています。新しくSheetを追加してA2セル(他のセルの時もあります)をアクティブにします。 Alt+F8→実行でA2セルから下へ、そのブック内の全ての「シート名」が書き出されるというマクロだったのです。 マクロ初心者です、どなたかアドバイスをお願いします。

  • Excelのマクロ初心者です

    Excelのマクロ初心者です 同じBookでセルA1に”1”が入力されているSheetのみ全て印刷する マクロを教えてください!

  • Excelでマクロ設定したが反映されない(初心者です)

    Excelでマクロを設定したのですが、なぜかきちんと反映されません。 以下、主な作業(実際の作業とは少し違いますがだいたい主な作業)を記載してみました。なぜ反映されないのか分からないので、もしお分かりになる方がいらしたら教えてください。必要な情報が足りない場合は、付け足します!マクロ初心者、というか、Excelも関数をたまに使う程度なので、基本から間違えてたりするかもしれませんがお願いいたします。 ※一連の作業がまずワークシートを1枚増やして、その後、必要なデータを貼り付け、さらに作業にうつります。ということで、キリのいいところで作業を2つに分けています。 【STEP1】 新しいマクロの記録 ok 挿入 ワークシート Sheet4タブを a と変更 Sheet1タブを b と変更 Sheet2タブを c と変更 Sheet3タブを d と変更 記録終了 【STEP2】 新しいマクロの記録 ok タブabcdを選択 作業グループの状態で、 全体の文字サイズを10に変更 行を3行挿入 A1セルの文字サイズを16に変更 4行目を選択し、文字位置を中央揃え A4・B4・C4・D4・E4・F4のセル色を青に変更 シートaのA1にaと入力 シートbのA1にbと入力 シートcのA1にcと入力 シートdのA1にdと入力 シートaとシートcとシートdを選択 作業グループの状態で、 B列・C列を選択 桁区切りスタイルに変更 シートcを選択 C列・D列を選択 桁区切りスタイルに変更 G4セルを青に塗りつぶし 記録終了 保存 (Book1.xls) 新規作成 マクロ Book1.xls!Macro1 実行 ★シートabcdにそれぞれ必要なデータを貼り付ける。 マクロ Book1.xls!Macro2 実行 ⇒シートdのみにマクロで記録させたものが反映されている。 他のシートは部分的に反映されたりしている。

  • エクセル、マクロで「末尾を1文字削除」したいのですが

    またまた、お願いします。 エクセル初心者向けの入力支援としてマクロを使っています。 【やりたい事】 セルを選択しマクロを実行すると「該当セルの末尾1文字が削除される」というのは可能でしょうか? カーソルを入れてBSすれば済むだけの事ですが、諸般の事情で「セル選択+マクロ実行」の動作にしたいのです。 どなたかよろしくお願いします(ponta_024)

  • エクセル VBA初心者です

    エクセルでマクロを設定したいのですが、まだ初心者なのでVBAはほとんど書けません。 たとえば、A1セルの値をコピーして、一番最後のシートのA1セルに貼り付けるという作業を、始めのシートから最後から2番目のシートまで実行したいと思います。最後のシートにはA1からA2、A3、A4・・・のようにどんどん下に貼り付けていきたいのです。特にシートの名前を指定するのではなく、一番左から、最後から2番目までのシートまで、シートの数に関わらず実行したいのですが。。。 いろいろ本を見て調べたのですが、シートを指定して移動するのとかは書いてあったのですが、こういう場合はどうすればよいのでしょうか、よろしくお願いします。

専門家に質問してみよう