エクセルのマクロで範囲名設定の記述を教えてください。>エクセルのマクロで範囲名設定の記述を教えてください。入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。ページを離れますか?※ページを離れると、お礼が消えてしまいますページを離れるお礼を続けるエクセルのマクロで範囲名設定の記述を教えてください。21:57回答数:9件エクセルのマクロで範囲名設定の記述を教えてください。Lotus123時代に作成したマクロを、エクセルに置き換えるのに苦労しています。範囲名ということで、特定のセル(範囲)に名称をつける機能がありますが「カーソルの現在位置に範囲名をつける」方法がわかりません。自動記録で作成すると、範囲名のセルに絶対値が入ってしまい、これを繰り返し記述すると、次の範囲名のセルもまた同じ場所になってしまいます。作業後にジャンプでその位置に戻り、そのセル名を削除した後、ひとつ右にうつった位置を次の戻り位置として再指定することを繰り返したいのです。Lotusでは行ってきたのですがエクセルではなかなかうまく行きません。"作業後ジャンプでこの範囲セルに戻り、このセル名を削除カーソルを別の位置に動かして、そこに新しく同じ名前のセル名をつくる。このときの記述をどう書くかということです。R13C5」というのが常にカーソルを置いた位置に可変させたいのです。エクセル初心者をよろしくお願いいたします。通報するこの質問への回答は締め切られました。オフセットさせたいのですが。14:34実操作を「新しいマクロの記録」すれば参考コードが得られます。記録の開始http://www.officepro.jp/excelmacro/rec/index1.htmlファイルを選択する部分は下記ページを参考にしてください。...>便乗してしまってすみません。お分かりのように新規で質問される内容です。上手くいかなければ新規質問をなさってください。本稿の問題点はクリアされましたか?クリアされたなら締め切り処理をお願いします。クリアされていないなら遠慮なく追加質問してください。通報するこの回答へのお礼なんどもご丁寧にありがとうございました。懸案の作業がスムースにできるようになり感謝しております。機会がありましたらよろしくお願いいたします。10:54≪アクティブセルのセル範囲を取得する一例≫Areasプロパティを使います。処理対象グループ内の、適当なデータ表示セルを選択して置いて、実行してください。下記ページの「テキストファイルに書き出す・読み込む」で紹介されています。通報するこの回答へのお礼テキスト書き出しはチャレンジしてみようと思います。エクセルはかなりお詳しそうなので、ファイルの読込みについてついでにお尋ねさせてください。スペースで仕切られた1行2列(例:左にタイトル、右に作者名)のテキストファイルを取り込むことが多いのですが、Lotusのときはテキストファィルをドラッグするだけで列単位で2つのセルに分けてくれましたが、エクセルだとドラッグしても2列が1行扱いの1セルになってしまいます。そこで、その都度次の作業をしているのですが、こういったものもマクロでワンキーで取り込むことはできるのでしょうか。(なお、左右の空間はタブでなく半角10文字くらいの空白の場合が多い)-----ファィルメニュー「開く」を選択(ファィルの種類でテキストを選択)テキストファィルを選択●(都度選択したい。「スペースによって...」を選択(常に同じ)「次へ」(フィールド幅の指定)●都度確認したい「次へ」G/標準(常に同じ)「完了」(取り込み)便乗してしまってすみません。10:14>第1グループのデータ集約(F1からのスタート)をしたらCOPYDATAには第4グループのデータが入っていたということです。同じ環境を用意できないので確認ができません。少なくとも当方のテスト環境では無問題です。手動(あるいは別のプログラム)でコピー操作をしているというようなことはないですか?エラー値表示セルとデータ表示セルは矩形範囲で固まっているのですか?試しにクリップボードに入れてみました。noro6857さんのコードからは離れますが試してみてください。これまで、徐々に解ったことを反映しているつもりです。各グループの先頭行なら、どの列のセルを選択していても、動くようにしています。Libraryにチェック入れてOKで参照設定をする必要があります。なってしまっため、こちらからお礼しておきます。回答7でやってみました。Rに書き直してみたところ、バッシリうまくできました。ご指示のとおり、どの列の1行目ににおいてもできました。これを活用してゆきたいと思います。記述の内容はまったく理解できないので、万一一部手直しなんてことになったらお手上げですが、それまでに勉強したいと思います。今回は、お忙しい中何回も作っていただいて本当に感謝しています。ありがとうございました。12:17>どちらも、選択範囲グループでなく最終グループのデータがCOPYDATAに入り、>あわせてクリップボードにはまったく関係ない直前のクリップボードが残っていました。クリップボードとはWindowsのクリップボードのことですね?COPYDATAの定義はどうなっていますか?コードを実行した時、アクティブセルのあるデータ範囲グループのデータがAA列でAA1以下に入るようになっています。COPYDATAセル範囲には、選択範囲グループのデータが入っているはずです。COPYDATAのセル範囲をCopyしています。クリップボードにはこのデータが入っているはずです。貼り付けてみてください。先にも書きましたが、Excelのコピーモードが解除されるとクリップボードの内容は空になります。>に関数を使ったデータが埋まっています。>21行目から25行目までもエラー関数で埋まっていますが>グループごとにしわけるため>21行目(A~F)はセル内容を削除し空白セルとなっています。G列は空白ではないのですか?列はA~Fで固定ということですか?>各データをグループごとにつくり、その都度テキストデータに張り付けています。テキストファイルに貼り付けているという事ですか?レベルが上がりますが、VBAでテキストファイルに書き込むことも可能です。クリップボードに、直接データを格納することも可能です。F列1~20行の意味です。第1グループのデータ集約(F1からのスタート)をしたらCOPYDATAには第4グループのデータが入っていたということです。このためCOPY+Vでも同じものになります。A列1~F20列(第1グループ)A列25~F40列(第2グループ)A列51~F80列(第3グループ)A列101~F150列(第4グループ)COPYDATAの定義はAA1のセル指定です。先の最終範囲内のみがクリップされることがあるというのは、COPYDATAにはA1~F20がすべてCOPYされているのになぜかクリップボード(windows)にはA列1~20のみが入っていることがときどきあるということです。これは私の作ったマクロでも発生していました。>G列は空白ではないのですか?実は便宜上A~F列と説明していますが実際にはM列からR列までで、その前後(L列、S列)にもデータが入っています。上下は空白セルで止めていますが左右は止まりません。>テキストファイルに貼り付けて保存用にテキストファィル(EM-editor使用)を使っています。EM-editorにもマクロ機能があって書き込みと同時に別のマクロを操作させています。エクセルからのVBAを使うと自動書き込みも可能かと思いますが、よくわからないので、この分はマニュアル操作です>作業開始セルに戻る必要性F列のところにあれば、次のスタートがF列のため、カーソルを下にずらせばいいのですが、A列とかB列にあると、下と右の2回ずらすことになるので手間をはぶきたいだけです。マクロで次のグループのスタート位置へ置くことも可能かと思いますが、1グループ飛ばすなど必ずしも次のグループへ移行するわけではないためこのようにしています。07:55回答番号:No.4に追記です。-x).End(xlDown)).Copyと変更してください。≪定義名を使わない例≫です。通報するこの回答へのお礼No4とNo5については、横着してそのままペーストしてマクロを作って実行してみたのですがどちらも、選択範囲グループでなく最終グループのデータがCOPYDATAに入り、あわせてクリップボードにはまったく関係ない直前のクリップボードが残っていました。Range("AA1").End(xlDown)).Copyの部分は前回と同じようなので、途中のどこかで...?No3(ループ処理)のものはうまくゆきました。(これに最終カーソル位置が入れば可)ちなみにデータのイメージがわかないかと思いますのでデータは第1グループA1~A20B1~B20C1~C20D1~D20E1~E20F1~F20に関数を使ったデータが埋まっています。21行目から25行目までもエラー関数で埋まっていますがグループごとにしわけるため21行目(A~F)はセル内容を削除し空白セルとなっています。DOUNで範囲が特定されます。F1からスターさせ、A20までの内容(計120セル分)をCOPYDATAに1列にしています。次のグループは26行目からたとえば50行目までとし、51行目に空白行を作ります。スタートはF26になります。(スタート位置はグループごとの行数が不規則なので手動でカーソルをおきセルを特定してます)このように繰り返し各データをグループごとにつくり、その都度テキストデータに張り付けています。01:07>スタート位置(F列1行目)にカーソルを戻したい定義名の設定を変更しないようにしてみました。Nothing>範囲は列内は同じですが、グループごとに20~30行その都度異なるグループとは、各列単位という認識で良かったですか?>最後のクリップボードの内容がAA1から最下段まで全部(すなわちA~Fまで)>の場合と、最後の範囲であるFだけしか残らない場合とがあって下記で転記データをコピーしています。Range("COPYDATA").End(xlDown)).Copy従って、"COPYDATA"がAA1固定なら問題ないはずです。セルをコピーしています。Escキー押し下げ等で、コピーモードが解除されると、クリップボードが空になります。ActiveCell.CurrentRegion上記で、データセル範囲内を取得しようとしています。データセル範囲内の、セルが選択されていれば、空白セルで囲まれた矩形範囲が取得されます。データセル範囲が空白セルで囲まれていない場合、不要なセル範囲も含まれるので使えません。17:20>どこかでわかるのでしょうか。最初の書き込みの内容がメールで届いていました。上記で解ったことをコードに反映してみました。定義名"COPYDATA"は、貼り付け先の先頭セルと解しています。Reference:="start3"下記でも同じ結果が得られると思います。Nothingこの回答への補足すみません。左はじ(A列)の範囲指定で終わっているのですがこれをスタート位置(F列1行目)にカーソルを戻したい場合、どこを修正するのかちょっととまどっています。お力を貸してください。ありがとうございました。前段のものをよく理解できないままにペーストしてマクロでやってみましたが、ループ処理をしているせいで一瞬に終わりますね。丹念に解読しながらこれを使ってみたいと思います。私の記述分でも、今回のでもときどきあるのですが最後のクリップボードの内容がAA1から最下段まで全部(すなわちA~Fまで)の場合と、最後の範囲であるFだけしか残らない場合とがあってどういう加減なのかよくわからないんです。後段のケース<下記でも同じ結果が得られると思います。列とか行の指定をあらかじめする必要があるのでしょうか?COPY範囲(行)を指定するコマンドがどこにあるのか理解できぬまま、このままペーストして実行みたらワークシート全体が1列整理されてしまいました。22:54おぼろげですが、やっていることが見えてきました。提示されたコードを纏めてみましたがどうでしょうか。xlCopy上記のようなことなら、名前の定義を使わなくても出来ると思います。元のデータを、列単位で、AA1以下1列に、値で転記します。各グループごとに異なります。右から左に移動するほか、途中順列になっていません。F-E-D-C-A-Bになり、カーソルの最後の位置はEの1行目になるようにしています。別のテキストエディタでは起動すると自動でクリップボードの内容が張り付けられるようになっています。通報するこの回答へのお礼ありがとうございます。No2についてはまだ、試していませんが取り急ぎ前回のご回答に基づいた現在までの内容です。5列20~30行のデータを1列ずつ順にcopyし、それを別の場所(copydata)に上から順次1列にまとめるものです。DATA,COPYDATA}(最下行に追記マクロ)(いったんDATAに移したあとCOPYDATAの最下行に追記する。DATAは追記の都度クリヤ))エクセルでは追記マクロがなさそうなのでend、shiftdownでやってます。ひととおりおわると1列にまとまったデータ(COPYDATA)を手動でテキストファイルにペースト。そのあと再度別の列から同様の作業すべて1のsheet内で行っています。-----------※~※は3回繰り返します。Reference:="start3"-------------このあと任意の位置にカーソルを動かし、再度スタートところで、私の部分の記述は長いので省略し私のコメントには記述していないのですがご回答いただいた内容でそれが出てきているのですがどこかでわかるのでしょうか。RefersTo:=newlclということでしょうか。>作業後にジャンプでその位置に戻り、そのセル名を削除した後、>ひとつ右にうつった位置を次の戻り位置として再指定することを繰り返したいのです。削除ではなく変更の例です。A1形式でやってみました。R13C5」というのが常にカーソルを置いた位置に可変させたいのです。通報するこの回答へのお礼お礼が遅れてすみません。一度書き込みをしておいたのですが、なぜか反映されていないため再書き込みします。おかげさまで、範囲名「設定」と「変更」について、それぞれ1例めを記述してみたところうまくゆきました。ありがとうございました。ついでで恐縮ですが、copy先の範囲を指定して、クリップボードにcopyしようとするのですが直前のCopy内容しか反映されません。lotusでは{EDIT-COPY}という記述をしていました。エクセルでは次のようにしました。Selection.End(xlDown)).SelectSelection.Copyクリップボードへ貼り付ける記述を教えていただけるとありがたいです。データ」に関するQ&A:パチンコ台を選ぶときのデータの見方。設定」に関するQ&A:Excelで、「特定のセルの値が変わったらマクロを実行する」という設定はできないでしょうか。エクセルでマクロを作成してますが、バックスラッシュが入力出来ません。エクセルマクロで、選択しているセルから印刷範囲を設定する方法を教えて下さい。データが入力されている列までを印刷範囲とするマクロについてご教示ください。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。