A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
まずは手動で振り分ける手順をイメージする。
そのイメージ通りの手順をマクロ(VBA)で再現する。
そんだけです。
(記述したマクロを最適化することもありますが、必須ではありません)
手動で振り分けるイメージが無ければ、何もできません。
…たまにいるんですよ。「面倒だから全部代わりに作ってくれ」って人がね…
イメージができれば、あとはVBAの記述のルールを覚えましょう。
まずは
「A1セルに数値を表示させる」
という超簡単な物から始めて、
「B1セルからB10セルまでの合計をC1セルに表示する」
という他のセルを参照するような物を作りましょう。
あとは条件や処理を変えたものを作ることを覚えればOK。
・・・
そんなわけで、今はとりあえず手動で振り分けることを勧めます。
自分でマクロを記述できるようになるまで半年くらいはかかると思っておきましょう。
手動で振り分けを行う中で、Excelの便利な操作方法を覚えることもあるでしょう。
意外とマクロを使うよりも手動で処理したほうが早く確実に、しかも無駄なマクロを残さずに終わらせることができたりします。
No.2
- 回答日時:
添付図参照
新規ブックを開いて、下記の作業を始める前に必ず[名前を付けて保存]を実行しておくこと。此処ではブック名を仮に「るーち.xlsx」としておく。
Sheet1 において、
1.範囲 A4:E150 を選択 ⇒ Alt+MC ⇒ “上端行”のみにチェック入れ ⇒ [OK]
Sheet「9999」において、
1.次式をセル A5 に入力
 ̄ ̄=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,9999)*1
2.セル A7 に次式を入力
 ̄ ̄=IFERROR(INDEX(INDIRECT(A$6),SMALL(IF(Sheet1!$D$5:$D$20=$A$5,ROW(D$5:D$20)),ROW(A1))-4),"")
 ̄ ̄【お断り】この式は必ず配列数式として入力のこと
3.セル A7 を右3列にオートフィル
4.オートフィルされて入力されたセル D7 の式を下記のように変更
 ̄ ̄=IFERROR(INDEX(INDIRECT(A$4),SMALL(IF(Sheet1!$D$5:$D$20=$A$5,ROW(G$5:G$20)),ROW(D1))-4),"")
 ̄ ̄【お断り】この式も必ず配列数式として入力のこと。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ちなみに、変更した箇処は「A$4」のみで、元は「D$6」に
 ̄ ̄ ̄ ̄ ̄ ̄ ̄なってた
5.範囲 A7:D7 を下方にズズーッと(空白行が表示されるまで)オートフィル
No.3
- 回答日時:
[No.2]の提示式を下記のように変更します。
理由は、最初は Sheet1 のデータの行範囲を A5~E20 で考えていたが、質問文中の「ユニット内のデータは多いもので100を超えます」を見落としていたことに、後になって気付いたのです。
その時点で、ステップ1で「範囲 A4:E150 を選択」としたのだけど、Sheet2 における修正を忘れていた次第。
前置きが長くなったけど、要は下記のように変更されたい。
2.変更前: =IFERROR(INDEX(INDIRECT(A$6),SMALL(IF(Sheet1!$D$5:$D$20=$A$5,ROW(D$5:D$20)),ROW(A1))-4),"")
 ̄ ̄変更後: =IFERROR(INDEX(INDIRECT(A$6),SMALL(IF(INDIRECT($A$4)=$A$5,ROW(INDIRECT($A$4))),ROW(A1))-4),"")
4.変更前: =IFERROR(INDEX(INDIRECT(A$4),SMALL(IF(Sheet1!$D$5:$D$20=$A$5,ROW(G$5:G$20)),ROW(D1))-4),"")
 ̄ ̄変更後: =IFERROR(INDEX(INDIRECT(A$4),SMALL(IF(INDIRECT($A$4)=$A$5,ROW(INDIRECT($A$4))),ROW(D1))-4),"")
[No.2]および上に記した内容が貴方に珍紛漢なら、私の“怪答”は全部無視されたい。
No.4
- 回答日時:
こんばんは!
VBAでの一例です。
オートフィルタで対応できると思います。
お示しの画像通りの配置で、シート見出しの2番目以降には「ユニット番号」名のシートが並んでいるとします。
標準モジュールです。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
Alt+F8キー → マクロ → マクロ実行です。
Sub Sample1() '//この行から//
Dim k As Long, lastRow As Long
Dim sN As String, wS As Worksheet
Application.ScreenUpdating = False
With Worksheets("マスタ")
For k = 2 To Worksheets.Count
Set wS = Worksheets(k)
sN = wS.Name
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 6 Then
Range(wS.Cells(7, "A"), wS.Cells(lastRow, "E")).ClearContents
End If
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A5").AutoFilter field:=4, Criteria1:=sN
If .Cells(Rows.Count, "A").End(xlUp).Row > 4 Then
Range(.Cells(5, "A"), .Cells(lastRow, "E")).SpecialCells(xlCellTypeVisible).Copy
wS.Range("A7").PasteSpecial Paste:=xlPasteValues
End If
wS.Range("A5") = sN
Next k
Application.CutCopyMode = False
.AutoFilterMode = False
.Activate
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub '//この行まで//
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- その他(IT・Webサービス) VBAを使って表を作成したいです 1 2022/06/08 21:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルの1シートを項目別に別シートへ分ける方法
Excel(エクセル)
-
エクセルである列の項目毎にシートに分ける方法を教えてください。
仕事術・業務効率化
-
エクセルの1シートの内容を複数のシートに分割したい。
Excel(エクセル)
-
-
4
Excelの出納帳で、別シートに自動で振り分け
財務・会計・経理
-
5
ExcelのVBAのマクロで他のシートの複数項目をクリアする方法
Visual Basic(VBA)
-
6
エクセルで入力シートから別シートに蓄積方法について
Excel(エクセル)
-
7
Excel 表から条件にあう行を別シートに抽出したい
Excel(エクセル)
-
8
【VBA】データを各シートに自動振り分けしたい
Visual Basic(VBA)
-
9
エクセルで複数のシートを同じ印刷設定で印刷する方法
Excel(エクセル)
-
10
excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。
Excel(エクセル)
-
11
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
12
エクセル入力で項目別にシートに振り分ける方法を教えてください!
Excel(エクセル)
-
13
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
14
ある列のセルに特定の文字が入っていたら他のセルに決まった文字を入れる
Word(ワード)
-
15
エクセルのグループ名ごとに別シートを作成するマクロについて
Excel(エクセル)
-
16
EXCEL
Excel(エクセル)
-
17
エクセルのデータ振り分け方法を教えて下さい
Excel(エクセル)
-
18
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
19
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
20
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 価格表から単価を呼び...
-
シートAで横に並んだ項目→シー...
-
行数が不規則な一週間ごとの合...
-
ある列、或いは、ある行のセル...
-
エクセルの順位別一覧表の自動...
-
Excel2013のF6キー操作について
-
エクセルで複数のシートにまた...
-
excelの不要な行の削除ができな...
-
Excelが固まってしまった。
-
エクセルで特定の範囲内から小...
-
スマートな関数を教えて下さい。
-
Excel元に戻す方法を教えてくだ...
-
Excelはなんで先頭の0を消すん...
-
【Microsoft Office Excel Comp...
-
4つのパターンを表示するEXACT...
-
[関数について]わかる方教えて...
-
Excel 2019 のピボットテーブル...
-
Excel初心者です。 詳しい方、...
-
関数を教えて下さい。
-
エクセルでチェックボックスを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報