2013年5月28日火曜日

130528

TextToCoLumnsメソッドで分割


Sheet1のA1,A2,A3にそれぞれ
1,22,333
2,33,444,5555
3,44,555,6666,77777
の値が入っているものとし、これを新しいシートの
D1,E1,F1に
1,
22,
333,
D2,E2,F2,G2に
2,
33,
444,
5555,
D3,E3,F3,G3,H3に
3,
44,
555,
6666,
77777,
カンマ毎に分割して値を入れるようにしてみる。

Sub 分割()

Dim i As Integer

  Worksheets.Add     'ワークシートの追加
        With Range(Cells(1, 4), Cells(3, 4))
            For i = 1 To 3
                .Cells(i).Value = Worksheets("Sheet1").Cells(i, 1).Value
            Next
            .TextToColumns _
            Destination:=Cells(1, 4), _
            DataType:=xlDelimited, _
            Comma:=True
        End With
End Sub


2013年5月26日日曜日

130526(2)

ReadLineメソッド周辺について


Do While .AtEndOfStream = False 〜 Loop

ReadLineメソッドは自動的に次の行、次の行と読み込んでいって最後に到達するとEndOfStreamプロパティがTrueになる。
よって、まだ続きがあるうちは処理を繰り返す。

130526

ExcelでWebデータをシートに読み込ませる。


Sub Webデータ読み込み()
    Dim myURL As String
    myURL = "URL;http://manchanr6.blogspot.jp"      '任意のURL
    '読み込むテーブルを指定
    With Worksheets.Add(after:=Worksheets(Worksheets.Count))  'ワークシートを最後尾に追加
        With .QueryTables.Add(Connection:=myURL _
                            , Destination:=Range("A1"))       '読み込み先セル
             .WebSelectionType = xlEntirePage
             .WebFormatting = xlWebFormattingAll
             .Refresh BackgroundQuery:=False
        End With
    .Name = "manyamablog"
    .Cells.EntireColumn.AutoFit                 '列幅調整
    End With
End Sub

2013年5月19日日曜日

130519

Excelにおいて四角形の領域の選択


A1とC2を頂点とする四角形の領域
Range("A1:C2")
もしくは
Range(Range("A1"), Range("C2"))

似て非なるもの
A1とC2の選択
Range("A1,C2")

2013年5月13日月曜日

130513

ワークシート関数RoundとVBAのRoundのちがい


ワークシート関数Roundは、"算術型"の丸め処理を行う。
".5"は常に切り上げられる。

一方、VBAのRoundは、"銀行型"の丸め処理を行う。
".5"は、結果が偶数になるように丸め処理が行われ、切り上げられることも、切り捨てられることもある。