こんにちは。
エクセルの串刺し集計ではなく、串刺し抽出のことでわからないので
教えて下さい。
・同じブック内に顧客20件のデータが管理されています。
・1シート毎が1顧客の単価帳になっています。
・A1に顧客の名前(同じくシート名もこれと同じく顧客の
名前をつけています。)
・抽出したいのは顧客20件の各シートのA50:B53です。
同じブックの新規シートに「A1の顧客名」と(どれを抽出したか
わからなくなってしまうから必要なのかな?と思います。)
20シート全ての「A50:B53」を抜き出すことは可能でしょうか?
抜き出したいセル番地は20シート一緒です。
それぞれのシートはA2からA49までの抽出しなくてもいいセルは、
不規則にだらだらと製品名や個々の単価が入力されています。
転職した会社でデータ管理がなされていなくてビックリしています。
とは言え私もマクロなどは経験がなく、なにをしたらできるのかが
さっぱり分かりません。
でも確か前の会社ではできていたのに・・・?
あれはアクセスだったのかなぁ? などという状態です。
VBAマクロの本を読みあさりましたが よくわかりませんでした。
とっかかりを教えていただければありがたいです。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
c=c+10はおっしゃるとおり10行空けるために足してます。
一般的にプログラムでの"="は数学に意味と違って、右辺のものを左辺にすると言う意味に使われます。ですからc=c+10はもとのcに10を足したものをcにするということです。c=1は1行目から書くという意味です。c=2にしておけば2行目からです。
さて、Range("A" & c)の意味ですが、
Range("A1").value="ABC"
Range("A2").value="ABC"
Range("A3").value="ABC"
の変化している数値について、変数を使用できます。
For i=1 to 3
Range("A" & i).value="ABC"
Next i
このあたりのことは、下記を見てください。
http://park14.wakwak.com/~aoiro-taro/old/taro/ha …
お勧めの本やサイトは、特にないんですが、分からない関数とか出てきたらその都度ネットや本で意味を理解しておくことだと思います。私もはじめの頃は"For Each ~"の意味が理解できないで苦労しました。
VBAはホントおもしろいですよ。エクセルの世界が100倍くらい広くなります。
それではがんばってください。
No.2
- 回答日時:
ちょっと作りかえました。
A50:F53は
Sub xxxx()
c = 1
For Each SH In Sheets
If SH.Name <> "a" Then
Sheets("a").Range("A" & c).Value = SH.Name
SH.Range("A50:F53").Copy Sheets("a").Range("A" & c + 1)
c = c + 10
End If
Next
End Sub
A50:F53,A55:F58は
Sub xxx()
c = 1
For Each SH In Sheets
If SH.Name <> "a" Then
Sheets("a").Range("A" & c).Value = SH.Name
SH.Range("A50:F53", "A55:F58").Copy Sheets("a").Range("A" & c + 1)
c = c + 15
End If
Next
End Sub
この回答への補足
ありがとうございます!
今回もきちんと作動しました。
もっともっと勉強したくなり本日ExcelVBAトレーニングという本を
購入してみました。
suz83238さまの書いてくださったものを日本語にすると
・・・シートaにセルA&cの値を取得する。ということですよね?
でもこの&cはなんのことでょうか? c = c + 10とはなにに10加えるのですか?
なんども伺って申し訳ありません。
suz83238さまのお勧めの本やサイトなどはございますか?
No.1
- 回答日時:
シートを1つ増やします。
そのシート名を「a」とします。試しに下記をやってみてください。Sub xxx()
c = 1
For Each sh In Sheets
If sh.Name <> "a" Then
Sheets("a").Range("A" & c).Value = sh.Name
Sheets("a").Range("A" & c + 1 & ":B" & c + 4).Value = sh.Range("A50:B53").Value
c = c + 6
End If
Next
End Sub
さっそくの回答をありがとうございました!!
できました! すごく嬉しいです。
全部手作業でやるのかと思っていたので感激しました。
マクロの素人で申し訳ありませんが
A50:B53のところの範囲を広げたい場合はどこを直したらよろしいのでしょうか?
別件でもう少し広範囲(例えばA50:F53)横に長い範囲の場合は?と
どうなるのですか?
またA50:F53,A55:F58のように範囲指定を2箇所することもできるのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
エクセルのシートを同時に行削...
-
excelで、セル内に文字が入力さ...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
エクセル マクロ 名前を付けて...
-
パソコンで購入したデーターが...
-
エクセルで縦書きルビの付け方
-
エクセルの列が左右逆に・・・・
-
Instagramの日付検索ってできま...
-
「時間」、「期日」、「日付」...
-
エクセル2007 番地の並び替え...
-
エクセルで最高値、最低値の日...
-
エクセルでのセルをまたぐ文字...
-
Word 2013 に詳しい方、 教...
-
エクセルで数字を1文字ずつセル...
-
海外サイトのB&Hという通販会社...
-
Excel:セルに入力されている日...
-
Access 前のレコードを元に計...
-
クエリを使わずに日付の抽出を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
excelで、セル内に文字が入力さ...
-
エクセルのシートを同時に行削...
-
表示倍率を変更させない方法
-
【エクセル】シートのロックで...
-
エクセルで別シート、または別...
-
Excelで、表に小計と合計を入れ...
-
エクセルの自動代入、自動コピ...
-
エクセルで、2つのシートにある...
-
エクセルシートの統合
-
エクセル◎○の人は、一つ昇格し...
-
ワードの差し込み印刷について
-
エクセルのCSVについて
-
同一セルに入力規則のリストと...
-
シートに入力した内容をマクロ...
-
EXCELの表の抽出方法
-
エクセルの担当者別にシートを...
-
エクセルで、作った年間カレン...
-
STAT VIEWが使えない!!!
-
エクセルVBAの文字列の部分一致...
おすすめ情報