入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。13:11回答数:4件お世話になります。EXCELマクロ初心者です。sheet1のA列に数字、B列・C列空欄、D列に語幹、E列に語幹の意味、F列に単語名、G列に単語の意味が入っており、F列の総数はおおよそ7000程です。sheet2のA列に数字、B列に数字または空欄、C列に数字または空欄、D列に語幹(ハイフンを含んだアルファベットの1部)、E列にD列語幹の意味が入力されています。語幹別に、新規の単語を取得するたびに、sheet2の語幹部分をソートし、A列の数字が更新され、その後、sheet1のA列数字が更新され、A列・F列をキーとして、昇順にソートされます。当初想定した以上にの語幹の数が増えてしまったので、その重要度を、sheet2のB列、C列に記録して、そのデータを、sheet1のB列、C列に転記せざるをえなくなっております。現在、sheet1のA列に値について、1行目から、個別にsheet2A列を検索し、B列・C列のデータを検索し、これを転記するマクロを組んでいるのですが、1行ごとに検索するため、おおよそ、45秒もかかっています。これを短縮する方法としては、検索した値を、配列変数のたとえば、iに、A列の同じ数字の行数を取得して、B列・C列に一括して、sheet2の数字(空欄の場合は空欄)をそのまま転記することだと思うのですが、残念ながら、自分では組み立てられません。どなたか、ご教示いただければ幸いです。ご教示いただいた内容を単純にマクロに転記するようなことではなく、自分なりに消化できてから、再度ご連絡をさしあげたいと思いますので、ご理解いただければと思います。お手数をおかけしますが、よろしくお願いします。通報するこの質問への回答は締め切られました。10:23NO2です。st1>これで一応動くようなのですが、やはり最終行がない場合は、動きません。>最終行の機能を教えていただければと思います。⇒前回でも記載していますが、st1はマクロ内の変数なので実シートに展開しないと編集内容が実体になりませんので必須です。(例えは変ですが、下書き文を本文に書き写すイメージ)以下参考です。Sheets("sheet2").Range("D65536").End(xlUp).Row⇒行数は「Rows.Count」を利用した方がエクセルのグレードにより行数が変わっても対応できる。With⇒コードの記述は統一した方が良い。回答補足のコードをみているとst1に格納時は「my3Lr」、展開時は「my4Lr」やFor分のエンド条件が主体はA列なにのD列の行数になっていたり平仄が合っていませんので整理した方がよいと思う。日付をまたいで、ご丁寧にありがとうございました。最後にいただいた回答で理解できました。ご指摘いただいた点も、今後のために大変参考になりました。お世話になるかもしれませんが、よろしくお願いします。本当にありがとうございました。22:03補足での疑問についてA2:A5に1,2,3でも入れて下記を実行してご覧。SubC3:C6にそれらの値が入るだろう。XはVARIANT型の変数で何もデータ型を宣言してないのでVARIANT型になる。エクセルVBA特有?の便利で、面白い機能だ。配列のようなイメージなんだが、配列ではないようだ。Subにすると形が一致しませんのエラーになる。今はそういうものとしておくのが良かろう。将来どういう仕組みになっているのか勉強して。ーーーしかしこの質問を読むと、頭がくらくらして判りにくい(1)実例模擬データを小数作って説明する(2)人間が手だ行でやるとし束愛の、作業ステップに沿って説明する。(3)重点を絞って、質問文(内容)簡潔にする余分な部分があるのではないか。いうことを今後の質問では留意をおねがいしますよ。補足への回答と、質問についてのご指摘ありがとうございます。今後の質問の際には、留意します。ありがとうございました。18:28NO1です。Worksheets("sheet2").Range("A1:G7000")>の部分なのですが、これは指示した範囲が全体として1つに格納されるのでしょうか、>それとも当該範囲の個別のセルが1つずつ格納されるのでしょうか。⇒2次元配列で格納されています。(シートと同じ)>また、検索・転記の対象が、A列からCである場合、G列まで指示するのはなぜでしょうか。st1>は何故必要なのでしょうか。'C列>で終わっていないのでしょうか。⇒サンプルですので、必要な範囲で結構です。上記の転記はマクロ内の変数(メモリ)のみなので最後にシートへの転記が必要です。ありがとうございます。ご教示いただいた内容から、自分なりに、データの可変に対応したものを次のように作成してみました。Subこれで一応動くようなのですが、やはり最終行がない場合は、動きません。最終行の機能を教えていただければと思います。何度も申し訳ありません。通報するこの回答へのお礼mu2011様ありがとうございます。何度も申し訳ありませんが、よろしくお願いします。15:01シート上で更新すると画面更新等、多量になれば時間がかかります。案1.表更新処理の前後で画面更新を停止/開始を行う。案2.各シートデータ範囲のデータを変数として取り込み、処理完了後にコピーする。データは、Cells(行,列)と同様に変数(行,列)として取り扱える。以下に配列を使用したサンプルコードです。ご回答ありがとうございます。試行してみたところ、処理時間は一瞬でした。私は、参考書や記事を複数読んでも、特に配列の理解が難しいので、個別の例を確認しながら、やっと理解している段階なので、助かります。Worksheets("sheet2").Range("A1:G7000")の部分なのですが、これは指示した範囲が全体として1つに格納されるのでしょうか、それとも当該範囲の個別のセルが1つずつ格納されるのでしょうか。検索・転記の対象が、A列からCである場合、G列まで指示するのはなぜでしょうか。st1は何故必要なのでしょうか。'C列で終わっていないのでしょうか。申し訳ありませんが、よろしくお願いします。回答ありがとうございます。補足質問については、現在は難しいでしょうか。EXCELで行内最小値を検索し、その最小値の入っているセルの同じ列の"1"行の値を返したいのですが。大至急!Excelのsheet1のセルの数字をsheet2のセルに反映させたい。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。