Sub 企業情報コピーテスト() Dim i As Long Dim s1 As String Dim excelldata1 As String Dim excelldata2 As String .... s1 = HtmlSorce.Cells(2, 2).Value '企業名 excelldata1 = Sheet1.Cells(4, 4).Value '資本金 excelldata2 = Sheet1.Cells(5, 4).Value Replace(s1,"tabledata1", excelldata1)
totals.shift # 先頭要素の0 を削除する p totals #=> [4, 11, 19, 31, 46, 48] 0731デフォルトの名無しさん (ドコグロ MM15-dzja)2019/11/18(月) 15:14:40.58ID:ScNSEd7IM>>722 Sub sample1() Dim i Range Range("B1") = Range("A1") For i = 2 To 6 Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1) Next i end sub
A列が不特定多数で出力の速さを求めるのなら
Sub sample2() Dim i Range,j Range j = WorksheetFunction.Count(Range("A:A")) Application.ScreenUpdating = False Range("B1") = Range("A1") For i = 2 To j Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1) Next i Application.ScreenUpdating = True end sub 0732デフォルトの名無しさん (ドコグロ MM15-dzja)2019/11/18(月) 15:19:20.54ID:ScNSEd7IM 間違えた
Sub sample1() Dim i As Long Range("B1") = Range("A1") For i = 2 To 6 Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1) Next i end sub
A列が不特定多数で出力の速さを求めるのなら
Sub sample2() Dim i As Long,j As Long j = WorksheetFunction.Count(Range("A:A")) Application.ScreenUpdating = False Range("B1") = Range("A1") For i = 2 To j Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1) Next i Application.ScreenUpdating = True end sub 0733デフォルトの名無しさん (スッップ Sda2-sGiA)2019/11/18(月) 15:42:28.46ID:cwF5jgoMd>>707 VBEのメニュー上にテキストボックス作って数値とアルファベット相互変換する奴作れば。 0734デフォルトの名無しさん (スッップ Sda2-sGiA)2019/11/18(月) 15:43:19.48ID:cwF5jgoMd>>720 寧ろ列番号の方が必要。 0735デフォルトの名無しさん (スッップ Sda2-sGiA)2019/11/18(月) 15:53:04.73ID:cwF5jgoMd>>722 Range("B1:B10").Value="=SUM($A$1:$A1)" '関数残したくなければ下を追加 Range("B1:B10").Value=Range("B1:B10").Value 0736デフォルトの名無しさん (ドコグロ MM4a-0xny)2019/11/18(月) 17:07:56.73ID:S9/8fJfLM>>734 どんなときに必要なの? 0737デフォルトの名無しさん (ワッチョイ eecc-7HT4)2019/11/18(月) 18:10:29.63ID:7QICIGub0 マクロ実行ブックと同じフォルダ内にある"CCT"というブックに 1つのシートがあって、そのシートをマクロ実行ブックの"CCT1"に貼り付けたいのですが "CCT"内のシート名が毎回変わってしまうので、変わってもコピペができるマクロをおしえてください
Sub Sample1() Dim RE, strPattern As String, r As Range Set RE = CreateObject("VBScript.RegExp") strPattern = "SUM\(" With RE .Pattern = strPattern ''検索パターンを設定 .IgnoreCase = True ''大文字と小文字を区別しない .Global = True ''文字列全体を検索 For Each r In ActiveSheet.UsedRange If .Test(r.Formula) Then r.Interior.ColorIndex = 3 Next r End With Set RE = Nothing End Sub このソースのDim REの部分ってこのサブルーチンだけを動かすようなマクロの場合いらなくね? 0765デフォルトの名無しさん (アウアウカー Sa55-d1iG)2019/11/21(木) 15:37:08.52ID:LUwjW7Cja>>764 間違えたdimでRE変数宣言するのいらなくない? それとは別の話でset RE nothingはこのサブルーチンしか動かさない場合は必要なくない? 0766デフォルトの名無しさん (オッペケ Src5-/8GO)2019/11/21(木) 16:45:06.69ID:CoNvnJper>>765 変数そのものがなくても良いって話なのか、宣言がいらないって話なのか? まあどっちもやりようによってイエスだが、それが推奨されるかは別の話 0767デフォルトの名無しさん (アウアウカー Sa55-d1iG)2019/11/21(木) 17:16:22.54ID:LUwjW7Cja>>766 プログラム的に何か考慮してるのか聞きたい プロジェクトでどうするべきか見たいなところは興味ない 0768デフォルトの名無しさん (アウアウカー Sa55-d1iG)2019/11/21(木) 17:22:58.39ID:LUwjW7Cja vbaの設計的にはSet RE = CreateObject("VBScript.RegExp") これだけで初期化できてるからdimで宣言する必要があるのかコンピューターサイエンスサイドの意味で聞きたい 0769デフォルトの名無しさん (スッップ Sd33-Q8jM)2019/11/21(木) 23:25:18.32ID:BtgKOXu8d 普通は変数宣言を強制するようになってるだろ。 0770デフォルトの名無しさん (ワッチョイ 8901-hZ32)2019/11/22(金) 00:36:07.32ID:kJTMU1Ov0 スモリートインハゲラクター 0771デフォルトの名無しさん (アークセー Sxc5-dWLu)2019/11/22(金) 01:53:36.59ID:NJe7bE9qx>>768 モジュールレベルで変数宣言を強制している場合にはプロシージャ内のDimで宣言していないとコンパイルエラーになる 型指定なしのDim宣言ってのは実際にはVariant型変数の宣言なので、代入時に型評価をしているだけだけどね RegExp型のメモリ領域をDim宣言時に確保するとなると参照設定が必要でそれはそれでまた別の問題が生じる 0772デフォルトの名無しさん (スプッッ Sd73-MY8M)2019/11/22(金) 11:54:02.74ID:L6bND2U2d クラスモジュールを使ってオブジェクト指向(厳密には違うらしいですが…)を理解したいと思っています Newでオブジェクト生成して、get set letを使いながらプログラムを書くという認識で合っているでしょうか? 0773デフォルトの名無しさん (アウアウカー Sa55-d1iG)2019/11/22(金) 12:01:14.10ID:BVLtoDL5a>>771 モジュールレベルで変数宣言を強制している場合には必要なのね、ありがとう良くわかった。 set RE = nothingなんだけどこのサブルーチン実行完了したらメモリとか解放されるからnothingやらなくてもスタック領域占有しないと思ってるんだけど実際のところどうなの?そもそも"VBScript.RegExp"の占有ってスタック領域であってる? そもそもVBAのこの