<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>kyouyanのブログ</title>
<link>https://ameblo.jp/ankokuneo/</link>
<atom:link href="https://rssblog.ameba.jp/ankokuneo/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>SE 技術 備忘録です。自分用です。</description>
<language>ja</language>
<item>
<title>VBA</title>
<description>
<![CDATA[ Sub Sample3()<br>    Dim i As Long, tmp As Variant<br>    For i = 2 To 22<br>        tmp = Split(Cells(i, 1), " ")<br>        Cells(i, 2) = tmp(0)<br>        Cells(i, 3) = tmp(1)<br>    Next i<br>End Sub<br><br>Sub Sample7()<br>    Dim i As Long, tmp As Variant<br>    For i = 2 To 6<br>        tmp = Split(Cells(i, 1), vbLf)<br>        Cells(i, 2) = tmp(0)<br>        tmp = Split(tmp(1), "：")<br>        Cells(i, 3) = tmp(1)<br>    Next i<br>End Sub<br><br><br>こんなときは、Windows APIのSleepを使うと、CPUの使用率を抑えられます。<br><br>Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)<br><br>Sub Sample1()<br>    Dim buf As String<br>    Const LogFile As String = "C:\log\ex090310.log"<br>    Open LogFile For Input As #1<br>        Do Until EOF(1)<br>            Line Input #1, buf<br>            Debug.Print buf<br>            Sleep 1<br>        Loop<br>    Close #1<br>End Sub
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11734085413.html</link>
<pubDate>Sun, 22 Dec 2013 14:05:15 +0900</pubDate>
</item>
<item>
<title>VBA</title>
<description>
<![CDATA[ Sub Sample3()<br>    Dim Target As String, i As Long, buf As String, c<br>    Target = InputBox("年度を指定してください")<br>    If Target = "" Then Exit Sub<br>    For i = 2 To 9<br>        If Left(Cells(i, 1), 4) = Target Then<br>            buf = Target &amp; "(" &amp; Cells(i, 1).Address(0, 0) &amp; ")" &amp; vbCrLf<br>            buf = buf &amp; "----------" &amp; vbCrLf<br>            For Each c In Cells(i, 1).MergeArea<br>                buf = buf &amp; c.Address(0, 0) &amp; vbCrLf<br>            Next c<br>            MsgBox buf<br>            Exit For<br>        End If<br>    Next i<br>End Sub<br><br>Sub Sample4()<br>    Dim buf As String<br>    With Range("A1").MergeArea<br>        buf = buf &amp; .Rows.Count &amp; "行" &amp; vbCrLf<br>        buf = buf &amp; .Columns.Count &amp; "列" &amp; vbCrLf<br>        buf = buf &amp; .Count &amp; "個" &amp; vbCrLf<br>        buf = buf &amp; .Item(1).Address(0, 0) &amp; ":左上" &amp; vbCrLf<br>        buf = buf &amp; .Item(.Count).Address(0, 0) &amp; ":右下"<br>    End With<br>    MsgBox buf<br>End Sub<br><br>Sub Sample5()<br>    Dim Target As String, i As Long, buf As String, c<br>    Target = InputBox("年度を指定してください")<br>    If Target = "" Then Exit Sub<br>    For i = 2 To 9<br>        If Left(Cells(i, 1), 4) = Target Then<br>            buf = Target &amp; "年の受賞者は、" &amp; vbCrLf<br>            For Each c In Cells(i, 1).MergeArea<br>                buf = buf &amp; c.Offset(0, 1) &amp; "さん" &amp; vbCrLf<br>            Next c<br>            MsgBox buf<br>            Exit For<br>        End If<br>    Next i<br>End Sub<br><br>Sub Sample1()<br>    Range("A1:C4").Borders.LineStyle = True<br>End Sub<br><br><br>Sub Sample2()<br>    If Application.Intersect(ActiveCell, Range("B2:D5")) Is Nothing Then<br>        MsgBox ActiveCell.Address(False, False) &amp; "は" &amp; vbCrLf &amp; _<br>               "セル範囲B2:D5の外です"<br>    Else<br>        MsgBox ActiveCell.Address(False, False) &amp; "は" &amp; vbCrLf &amp; _<br>               "セル範囲B2:D5の中です"<br>    End If<br>End Sub<br><br><br>Sub Sample4()<br>    Dim myRange As AutoFilter<br>    Set myRange = ActiveSheet.AutoFilter<br>    If Not myRange Is Nothing Then<br>        MsgBox "設定されています"<br>    Else<br>        MsgBox "設定されていません"<br>    End If<br>End Sub<br><br><br>正解は「セルに設定されている表示形式によって異なる」です。<br>もし、元のセル範囲A1:A5に「文字列」の表示形式が設定されていた場合は、"001"や"002"などが、文字列として代入されます。このとき、"001"や"002"を、"1"や"2"など純粋な数値として表示したいのでしたら、代入するときに、表示形式も変更してやります。<br><br>Sub Sample2()<br>    Dim i As Long<br>    For i = 1 To 5<br>        With Cells(i, 1)<br>            .NumberFormat = "General"<br>            .Value = Mid(.Value, 2)<br>        End With<br>    Next i<br>End Sub<br><br><br>あるいは、オートフィルタを設定したい表内の、どれか1つのセルを指定すれば、Excelが自動的に表の大きさを認識してくれますので、次のように書いてもOKです。<br><br>Range("A1").AutoFilter Field:=1, Criteria1:="田中"<br><br><br>Sub Sample2()<br>    Dim PathName As String, FileName As String, pos As Long<br>    pos = InStrRev("C:\Sample\Sub\Book1.xls", "\")<br>    PathName = Left("C:\Sample\Sub\Book1.xls", pos)<br>    FileName = Mid("C:\Sample\Sub\Book1.xls", pos + 1)<br>    MsgBox PathName &amp; vbCrLf &amp; FileName<br>End Sub
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11734066983.html</link>
<pubDate>Sun, 22 Dec 2013 13:24:43 +0900</pubDate>
</item>
<item>
<title>VBA</title>
<description>
<![CDATA[ 結合されているかいなか<br><br>Sub Sample2()<br>    Dim i As Long, buf As String<br>    For i = 2 To 9<br>        If Cells(i, 1).MergeCells Then<br>            buf = buf &amp; Cells(i, 1).Address(0, 0) &amp; "--&gt;結合されています" &amp; vbCrLf<br>        Else<br>            buf = buf &amp; Cells(i, 1).Address(0, 0) &amp; "--&gt;結合されていません" &amp; vbCrLf<br>        End If<br>    Next i<br>    MsgBox buf<br>End Sub
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11734066262.html</link>
<pubDate>Sun, 22 Dec 2013 13:23:02 +0900</pubDate>
</item>
<item>
<title>VBA</title>
<description>
<![CDATA[ という位置関係になりますので、新しいデータを追記するには、次のように書けます。<br><br>Sub Sample6()<br>    With Cells(Rows.Count, 1).End(xlUp)<br>        .Offset(1, 0) = "2010/1/19"<br>        .Offset(1, 1) = "佐山"<br>        .Offset(1, 2) = 1234<br>    End With<br>End Sub
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11734064837.html</link>
<pubDate>Sun, 22 Dec 2013 13:20:18 +0900</pubDate>
</item>
<item>
<title>VBA</title>
<description>
<![CDATA[ 最終セルの行数だけを知りたいのでしたら、<br>Endモードで見つかるセルの行番号を取得します。<br><br>Sub Sample3()<br>    Dim LastRow As Long<br>    LastRow = Cells(Rows.Count, 1).End(xlUp).Row<br>    MsgBox "最終行は" &amp; LastRow &amp; "です"<br>End Sub
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11734064384.html</link>
<pubDate>Sun, 22 Dec 2013 13:18:58 +0900</pubDate>
</item>
<item>
<title>なか</title>
<description>
<![CDATA[ <br>Option Explicit<br>Private Const cnsSOUR = "C:\AAA\SAMPLE1.txt"   ' 元ファイル<br>Private Const cnsDEST = "C:\BBB\SAMPLE2.txt"   ' 先ファイル<br><br>' ファイルコピーのサンプル<br>Sub COPY_SAMPLE()<br><br>    ' ファイルをコピー<br>    FileCopy cnsSOUR, cnsDEST<br>End Sub<br>
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11733125806.html</link>
<pubDate>Fri, 20 Dec 2013 21:32:44 +0900</pubDate>
</item>
<item>
<title>マクロ</title>
<description>
<![CDATA[ Sub テスト()<br><br>    Dim range1 As Range<br>        <br>    Set range1 = Range("B2:C5")<br>    range1.Copy Destination:=Range("E2")<br>    <br>End Sub<br>
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11733123487.html</link>
<pubDate>Fri, 20 Dec 2013 21:28:38 +0900</pubDate>
</item>
<item>
<title>まな</title>
<description>
<![CDATA[ Sub Sample4()<br>    Range("C2") = Range("A1")<br>End Sub<br>
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11733120412.html</link>
<pubDate>Fri, 20 Dec 2013 21:23:36 +0900</pubDate>
</item>
<item>
<title>こぴー</title>
<description>
<![CDATA[ Sub Sample3()<br>    Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("C2")<br>End Sub<br>
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11733119373.html</link>
<pubDate>Fri, 20 Dec 2013 21:21:58 +0900</pubDate>
</item>
<item>
<title>ら</title>
<description>
<![CDATA[ <br> 1行目：  Public Sub Sample_ExportAllModule_01()<br> 2行目：  <br> 3行目：      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<br> 4行目：      ' 参照設定：<br> 5行目：      ' 「Microsoft Visual Basic for Application Extensibility」<br> 6行目：      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<br> 7行目：      <br> 8行目：      ' このブックのVBProjectをオブジェクト変数に格納する。<br> 9行目：      Dim Obj As VBIDE.VBProject<br>10行目：      Set Obj = ThisWorkbook.VBProject<br>11行目：  <br>12行目：      ' VBProjectに存在するコンポーネント数を変数に格納する。<br>13行目：      Dim CompCnt As Long<br>14行目：      CompCnt = Obj.VBComponents.Count<br>15行目：  <br>16行目：      ' エクスポート先のフォルダを決める。<br>17行目：      Dim ExpDir As String<br>18行目：      ExpDir = "C:\VBAModuleFile"<br>19行目：  <br>20行目：      ' VBProjectに存在するコンポーネントを一つずつ参照する。<br>21行目：      Dim lp As Long<br>22行目：      For lp = 1 To CompCnt<br>23行目：          ' エクスポートするファイルの拡張子を決定する。<br>24行目：          Dim str As String<br>25行目：          Select Case Obj.VBComponents(lp).Type<br>26行目：              Case 1<br>27行目：                  str = ".bas"<br>28行目：              Case 2<br>29行目：                  str = ".frm"<br>30行目：              Case Else<br>31行目：                  str = ".cls"<br>32行目：          End Select<br>33行目：          <br>34行目：          ' エクスポートを実行する。<br>35行目：          With Obj.VBComponents(lp)<br>36行目：              .Export (ExpDir &amp; "\" &amp; .Name &amp; str)<br>37行目：          End With<br>38行目：      Next<br>39行目：  <br>40行目：      ' オブジェクトを破棄する。<br>41行目：      Set Obj = Nothing<br>42行目：  <br>43行目：  End Sub
]]>
</description>
<link>https://ameblo.jp/ankokuneo/entry-11733116563.html</link>
<pubDate>Fri, 20 Dec 2013 21:14:38 +0900</pubDate>
</item>
</channel>
</rss>
