5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
伊藤博文さんの投稿
(投稿ID: 3905)
右の表を年と商品を書くマクロを一気にすることができないかなと思ってトライしてみましたが、うまくいかなかったです。
Sub rensyu1()
Range("B1").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:F231")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E1").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:F231")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim tate
Dim hida
Dim yoko
Dim syohin
Dim toshi
ここでタテ、ヨコの変数を0としても、
上手くいかなかったです。
For hida = 2 To 231
If Range("E" & hida).Value <> syohin Then
Range("H3").Offset(tate, 0).Value = Range("E" & hida).Value
syohin = Range("E" & hida).Value
tate = tate + 1
ElseIf Range("B" & hida).Value <> toshi Then
Range("I2").Offset(0, yoko).Value = Range("B" & hida).Value & "年"
toshi = Range("B" & hida).Value
yoko = yoko + 1
End If
Next
NarabeID
End Sub
ご指導宜しくお願いします。
小川 慶一さんのコメント
(コメントID: 5463)
以下のようにすればとりあえず動きはしますね。
とはいえ、2005年から2008年というラベルを何度も上書きするだけなのであまり効率良いとは言えませんが。
[*]のやり方にすぐ気がつかないとしたら、以下の課題をまだ十分に理解できてないかもしれません。
無意識にやれるように。あるいはまた、誰かに説明するつもりでマクロの作りについて説明しながらでもスラスラ書けるように練習してください。
○出現回数を数える。CountIf関数がやっていることをマクロで書くと?
https://forum.pc5bai.com/lesson/page/150
○勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと?
https://forum.pc5bai.com/lesson/page/151