Dim i As Long Dim n As Long Dim LastRow As Long Dim SplCell As String Dim temp As Variant Dim AddRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = LastRow To 1 Step -1 SplCell = Cells(i, 1) temp = Split(SplCell, "/") AddRow = UBound(temp) If AddRow > 0 Then Range("A" & i + 1).Resize(AddRow).EntireRow.Insert End If
For n = 0 To AddRow Cells(i + n, 1) = temp(n) Cells(i + n, 2) = Cells(i, 2) Next n Next i End Sub 0013デフォルトの名無しさん (ワッチョイ df49-+rQD)2023/01/29(日) 11:46:37.73ID:WTXbQyE20>>12
考えてみた。
Sub test()
Dim i As Long Dim n As Long Dim LastRow As Long Dim SplCell(1) As String ←変更。(0)はアルファベットを格納、(1)はアルファベット以降の金額部を格納。 Dim temp As Variant Dim AddRow As Long Dim m As Double ←追加。行数で分割した金額。
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = LastRow To 1 Step -1 SplCell(0) = Left(Cells(i, 1), 4) ←追加 SplCell(1) = Mid(Cells(i, 1), 5) ←変更 temp = Split(SplCell(1), "/") AddRow = UBound(temp) If AddRow > 0 Then Range("A" & i + 1).Resize(AddRow).EntireRow.Insert End If
m = Cells(i, 2) / (AddRow + 1) 追加 For n = 0 To AddRow Cells(i + n, 1) = SplCell(0) & temp(n) ←変更 Cells(i + n, 2) = m ←変更 Next n Next i End Sub 0014デフォルトの名無しさん (ワッチョイ db10-+rQD)2023/01/29(日) 12:05:26.37ID:nRF7bUNu0>>13 ありがとうございます!! 希望通りに動きました。
助かりました。すごく嬉しいです。 0015デフォルトの名無しさん (オッペケ Sr3b-O9ZV)2023/01/29(日) 14:40:20.12ID:cIjm/G+Or>>9 It sounds like you are saying that Excel users may not have experience with things like HTTP requests and API connections, but that Google Sheets may be better suited for those types of tasks because it is a cloud-based app. You also mention that your company has been transitioning away from using Excel and towards using Google Sheets for most of their spreadsheet needs, with the exception of some areas where older macros developed in Excel are still in use. It's interesting to see how technology and user preferences can change over time. 0016デフォルトの名無しさん (ワッチョイ 5fda-2biX)2023/01/29(日) 15:11:19.34ID:GtadNWQm0 looks like 〇 sounds like × 0017デフォルトの名無しさん (ワッチョイ 9a02-5T4A)2023/01/29(日) 15:15:30.68ID:KzySl/Bm0 なんで英訳 0018デフォルトの名無しさん (オッペケ Sr3b-O9ZV)2023/01/29(日) 15:18:51.71ID:cIjm/G+Or ChatGPT 0019デフォルトの名無しさん (ワッチョイ 5f10-bQbc)2023/01/29(日) 16:52:45.66ID:wtQ124Fo0 こっちも零細企業荒らしがいるのか 0020デフォルトの名無しさん (ワッチョイ b666-5T4A)2023/01/29(日) 18:16:29.96ID:OkpG00lK0 クラスモジュールを使っていく勉強しています。 ClassAのプロパティとしてClassB,ClassCから作るオブジェクトを持たせる事で階層型に 整理できるようですが、これも正しいオブジェクト指向の形なのでしょうか?
思ってるような使い方は出来ないという事でよろしいでしょうか? 0042デフォルトの名無しさん (ワッチョイ 8a3d-0rrK)2023/02/03(金) 01:33:26.18ID:0K9bvbAh0 Sub test_if() a = -1 If a >= 2 Then Debug.Print "aは2以上" Else Debug.Print "aは2未満" End If End Sub
Sub CheckSortOrder() Dim sortOrder As Boolean sortOrder = ActiveSheet.AutoFilter.Sort.SortOn If sortOrder = True Then MsgBox "The column is sorted in ascending order." Else MsgBox "The column is not sorted in ascending order." End If End Sub 0059デフォルトの名無しさん (ワッチョイ 8fda-EOzK)2023/02/04(土) 10:59:33.56ID:mzRI23fF0>>58 だからさ、そのコードが有効かどうかを、先ずはじぶんで検証しろよ ゴミコードだろうと何でも貼りゃあいいってもんじゃねーぞ △! オブジェクトは、このプロパティまたはメソッドをサポートしていません。だぞ おま環のせいで動作しないだけってか? 検証もしてない野良コードは世間の大迷惑 AIなら間違わないってか? 訊ねる人間側に問題あるからゴミコード吐くのに気付け 0060デフォルトの名無しさん (スプッッ Sddf-D+99)2023/02/04(土) 11:20:43.51ID:EUGDlgP1d>>59 そのコードを検証することは重要です。そのコードが有効かどうかは、まず自分で確認する必要があります。「AIなら間違わない」という考え方は誤りです。AIモデルはトレーニングデータから学習するだけであり、常に正確ではありません。野良コードを使用しても問題が起こる可能性があり、それが世間を混乱させることがあります。 0061デフォルトの名無しさん (ワッチョイ 4f01-Rev0)2023/02/04(土) 13:12:21.87ID:sIc7L3oe0>>53 「csvを格納するならそのまま格納して」って言うのが、まさにその方法を知りたいっていう質問でした Line Inputをつかって一行ずつ一次元配列に分割して、それを二次元配列に格納して、二次元配列の一次元目を増やして…ってのを繰り返すってのを考えました (二次元配列の一次元目を増やすプロシージャを作成する前提) ところがredim b(0)(100,100)という宣言自体がエラーになるのでどうしたものかと 0062デフォルトの名無しさん (ワッチョイ 0fda-kmO4)2023/02/04(土) 14:48:40.79ID:JIMr/Iwq0>>61 お役に立てたのならなによりっす。
と、SS撮ってて気づきましたが範囲の中から同じ行のセルを選んで渡す必要があるのですね。 VLOOKUPの第一引数なんかで同じことをすると自動的に同じ行だけを渡せるので勘違いしていました。 0074デフォルトの名無しさん (ワッチョイ 0fda-zLlH)2023/02/09(木) 07:05:59.22ID:bJr31kU+0>>73 検証してないので的外れかもしれないけどたぶんRangeのデフォルト値の問題かと。 うろ覚えだけどvariant型で渡されているからセル単体を引数で渡すとセル内容の値の型(今回はstring型)を渡すけど 複数セルを渡すとrange型のオブジェクトとして渡されてるんじゃないかな。 なので自身で書かれているようにセルを特定してあげないといけないのだと思う。 0075デフォルトの名無しさん (ワッチョイ 0f2f-gpJN)2023/02/09(木) 23:30:18.42ID:TUokDGw70>>73 >範囲の名前に&“”をつければ期待通りの結果になります のがおかしい気がするんだが。実際こっちで検証してもエラーになってる ちょっと環境書いてみて 0076デフォルトの名無しさん (ワッチョイ fa3d-n4dK)2023/02/13(月) 03:20:36.33ID:COtuPGR00 Sub test() a = 0.2 b = 0.4 If a + b = 0.6 Then Debug.Print "A" Else Debug.Print "B" End If End Sub