- ベストアンサー
エクセルのコピーについてご教示下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.3です。 >一度無しと出ると、何度しても同じようになります。 正常に動作した日付で再度実行しても、無しと出るのでしょうか? それとも特定の日付だけ、無しと出るのでしょうか? 今回は「特定の日付だけ無しと出る」について回答します。 前回のコードは シートA-B4セルの「日付」がシートB-D列にあるか検索しています。 この時の「日付」はシリアル値を指し同じシリアル値があるかを検索しています。 例えばシートB-D1に 11/24 と「表示」されていたとします。 あくまでも「表示」しているだけであって実際の内容は 1.2008/11/24 0:00 2.2007/11/24 0:00 3.2008/11/24 0:30 4.ただの文字列の11/24 と見た目では同じ11/24であっても実際の内容が異なっている 場合があります。 この時の1.2.3.がシリアル値となります。 (詳しくは シリアル値 で検索願います。) 今回のような日付(シリアル値)の検索がうまく動作しな かった場合は見た目の勘違いを防ぐ為にも、該当するセル の表示形式を変更する事をお勧めします。 シートA-B4セル、シートB-D列の表示形式を 西暦/月/日 時刻 などに変更し再確認してみて下さい。 (特にD列に時刻表示されていないセルが無いか確認して下さい。) (時刻表示されていない=シリアル値でない という事です。)
その他の回答 (3)
- harapeco7
- ベストアンサー率54% (33/61)
>ボタンひとつでコピーするようにしたいのですが出来るでしょうか。 こういった質問をする場合、マクロ(VBA)についてどのぐらい知識が あるのか添えて頂けると回答側としては助かります。 極端な話、Q.エクセルの「マクロ(VBA)」といった機能を使うと出来ます。 となってしまいます。 今回はコードの記述ついて回答します。 ※バックアップを取ってから実行して下さい。 ※貼り付け先の領域にデータが既に入っていても上書きします。 Sub test() Dim sh1 As Worksheet Dim sh2 As Worksheet Dim ran As Range Dim hi As Date Set sh1 = Worksheets("シートA") Set sh2 = Worksheets("シートB") hi = sh1.Range("B4") Set ran = sh2.Columns(4).Find(hi) If Not ran Is Nothing Then sh1.Range("C5:E10").Copy ran.Offset(1, 1) Else MsgBox "同じ日付無し" End If Application.CutCopyMode = False Set sh1 = Nothing Set sh2 = Nothing Set ran = Nothing End Sub
補足
昨夜は、早速のご教示ありがとうございました。 私は、マクロは、お教えいただいたものを本に添って標準モジュールに貼り付け使用する程度の素人です。 よろしく、お願いいたします。 早速、使用してみると、何度か日付を変えてやっている間に、途中から同じ日付があるのに、無しとでるようになりますが、日付の入力の仕方など、注意点があるのでしょうか。 特に、日付の書式を変えたようなことはしていませんが、一度無しと出ると、何度しても同じようになります。 よろしく、お願いいたします。
- mitarashi
- ベストアンサー率59% (574/965)
#1と同様ですが Sub test() With Worksheets(2).Range("d:d") Set c = .Find(Worksheets(1).Range("b4").Value, LookAt:=xlWhole) If Not c Is Nothing Then Worksheets(1).Range("c5:e10").Copy c.Offset(1, 1) End With End Sub
- n_na_tto
- ベストアンサー率70% (75/107)
シートAのC5からE10 ↓ シートBのE21から【G26】ではないでしょうか? でないとサイズが違ってしまいますよね? Dim myShtA As Worksheet, myShtB As Worksheet Dim myRngA As Range, myRngB As Range Set myShtA = Worksheets("シートA") Set myShtB = Worksheets("シートB") Set myRngA = myShtA.Range("B4") With myShtB.Range("D:D") 'シートBのD列の中だけ Set myRngB = .Find(myRngA.Value, LookIn:=xlValues) '検索して If Not myRngB Is Nothing Then 'もし見つかれば 'どちらの範囲も下に1,右に1移動、下に6,右に3拡大してまとめて代入 myRngB.Offset(1, 1).Resize(6, 3).Value = _ myRngA.Offset(1, 1).Resize(6, 3).Value End If End With
関連するQ&A
- エクセルでの比較データコピー
エクセル2010でマクロを組んでデータ処理を簡単に行いたいのですが、 よくわからないので、教えてください! シート2のC列とシート1のD列を比較し、同じ文字列があった場合に シート2のE列をシート1のF列にコピーする。 ただし、シート2のE列に〇が入っている場合は、シート2のG列をシート1のF列にコピーする。 どなたかご教示いただけませんか? よろしくお願いします!
- ベストアンサー
- Visual Basic
- VBA 今日の行にあるセル コピー 別シートへ
(1)sheet1にボタン button1 があり、そのボタンを押すと、マクロが起動する。 (2)データは sheet2 貼り付け先は sheet3 sheet2 F列に日付が入っています。 F列は、日付(過去~本日まで ※未来の日付はありません)か、空白の場合があります。 F列の日付が本日のとき、 sheet2 A列のセルの値を sheet3 B列へ。 A列には連番。 sheet2 D列のセルの値を sheet3 C列へ。 sheet2 G列のセルの値を sheet3 D列へ。 sheet2 F列のセルの値を sheet3 E列へ。 それぞれ、Sheet3の各行の一番下に貼り付ける形をとりたいのです。 こちらでマクロはどうしたらよいのでしょうか。
- ベストアンサー
- オフィス系ソフト
- VBA 他シートを参照しているセルのコピー
お世話になります。 以下のシートがあります。 [sheet a] A B C D E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- テキストファイルのデータをエクセルへコピーのやり方
よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1 /はスペースです。 D1/E1/F1 データの長さは全部違います。 A2/B2/C2 D2/E2/F2 A3/B3/C3 D3/E3/F3 ・ ・(続く) といったものがあります。これをエクセルで A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2 ・・・ 3行 A3 B3 C3 D3 E3 (続く) ・ ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロの登録について
エクセルのマクロ登録についてご質問です。 エクセルでマクロを登録したいのですが、 D7~D49まで自動で数式が反映するようにしてあります。 マクロのボタンを作成し、そのボタンを押すとコピーを選択した状態になるようにしてあります。 これが、すぐよこのE列~AH列まで日付が並んでおり、D7~D49に反映させたデータを 対応する日付の下に毎日値貼り付けをしている常態です。 D E F G 自動反映 9/1 9/2 9/3 7 ~ 49 ボタンひとつでコピーした状態ではなく、その対応した日付の下に値貼り付けすることはできますでしょうか。 これがシート1、シート2、シート3、シート4まで あるのですが、ボタンひとつで登録するようにできますでしょうか。 どなたかご回答よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルで規則性のあるシート間コピーについて
QNo.3516944にて質問しましたが、ちょっと説明不足もありましたので再度投稿します。 ●例2 sheet1 A B C D E 1 a a a c c c 2 b b b d d d e e e 3 a'a'a' c'c'c' 4 b'b'b' d'd'd' e'e'e' とあったデータを sheet2 A B C D E 1 a a a b b b c c c d d d e e e 2 a'a'a' b'b'b' c'c'c' d'd'd' e'e'e' 3 a"a"a" b"b"b" c"c"c" d"d"d" e"e"e" 4 以下同様に下にコピーしたい 数式では A B C D E 1 =Sheet1!A1 =Sheet1!B2 =Sheet1!C1 =Sheet1!D2 =Sheet1!E2 2 =Sheet1!A3 =Sheet1!B4 =Sheet1!C3 =Sheet1!D4 =Sheet1!E4 3 =Sheet1!A5 =Sheet1!B6 =Sheet1!C5 =Sheet1!D6 =Sheet1!E6 4 =Sheet1!A7 =Sheet1!B8 =Sheet1!C7 =Sheet1!D8 =Sheet1!E8 この規則性を 以下同様に「+」でコピーしたい ご指導のほどよろしくお願いします。罫線がうまく表現できないのでわかりづらくて申し訳ないです。
- ベストアンサー
- オフィス系ソフト
- 指定した数だけデータをコピペする方法
VBAの参考例を教えてください。 <シート1> A列に1から順に数字が入力されており、B列からE列まで数値のデータが入力されています。F列にはB列からE列にデータが入力されているセルの数をカウントした関数が入力されています。 <シート2> シート1のB~Eに入力されたデータが縦に入れ替えの上A列にコピぺされています。 ここで、シート1のA列の数値をコピーし、シート1F列に示されたデータ数分だけ、シート2のF列に縦に順々にペーストしていく方法をご教示ください。シート1のA列に入力された数値が最後の行にくるまでこれを繰り返します。 シート1 A B C D E F 1 a b c d 4 2 e d f 3 3 d e 2 ・ ・ ・ シート2 A B C D E F a 1 b 1 c 1 d 1 e 2 d 2 f 2 d 3 e 3 当方、VBAは全くの初心者です。急遽仕事で必要になってしまい、質問しました。 どうぞよろしくお願いします。
- 締切済み
- Visual Basic
- Excelで、特定の範囲を別シート/ブックへ自動でコピーする方法
教えてください。 Excelで、営業がSheet1へ入力した内容を得意先ごとに、別シートもしくは別ブックの見積書フォーマットへ自動でコピーできるようにしたいです。 Sheet1はその月の販売一覧データを入力してもらう形です。 ■Sheet1の内容 A B C D E F 日付 得意先名 商品名 数量 単価 金額(=数量×単価) 1/10 ●● XXXXXX 200 3000 600000 1/10 ●● XXXXX 100 1000 100000 1/12 ▽▽ XXXXXX 1 50000 50000 1/12 ▽▽ XXXXX 2 50000 100000 1/15 ■■ XXXXXXX 20 8000 160000 ・ ・ ・ A~F列までを、A・B列の日付&得意先別に、別シートもしくは別ブックの見積書フォーマットに値のみを書き出したいです。 ボタン1つ押すとコピーされるようなお手軽な形式を希望します。。 簡単に出来る方法があれば教えていただけますと非常に助かりますm(__)m
- 締切済み
- 財務・会計・経理
- 《エクセル》リストから同じ分類のデータのみコピーする
いつもお世話になります。 別のシートに、下記の形のリストがあります。 列A 列B 列C 列D (商品名)(大分類)(中分類)(売上金額) 商品A あ A 1000 商品B あ B 900 商品C い A 800 商品D あ A 700 商品E あ C 600 商品F あ F 500 マクロを組んで、このリストの大分類が"あ"、中分類が"A"に該当する商品名と売上金額のみをコピーして、今開いているシートの列A・列Bに連続したデータとして貼り付けたいのですが、うまくいきません。 ご教授宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
お礼
お礼が少し遅くなりました。 ちゃんと動いて、コピーが出来るようになりました。 丁寧に教えていただき、ありがとうございます。 本当に助かりました。 今後ともよろしくお願いいたします。