高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

土曜日はAndroidの会横須賀支部定例会です。

土曜日は日本Androidの会横須賀支部の12月定例会です。

無事スピーカー枠が埋まりましたのでこのまま開催することになりました。
参加者はまだまだ募集中ですので、気になる方はATNDにご登録ください(なお、会場でも受付を行っておりますので、登録ナシで来て頂いても構いません)。



ところで、今回から式次第をExcelでするようにしました。スピーカーがらみのイベントの場合それぞれのスピーチ時間を計算して割り当て時間を調整するなど時間の単純計算が多かったのですが、これのおかげでだいぶ楽になりました。
やっていることは、「開始時間+スピーチ時間+休憩時間を次の予定の開始時間とする*1」という非常に単純な計算です。これだけのことですがやはり作業がかなり楽になる そう考えるとこういう「アプリを活用」するってすごく大事だなあ と、痛感します。

オマケに、予定表をTextile記法にしてクリップボードにコピーする機能つき。これをそのままATNDに貼り付けることで式次第が作成出来ます。

Public Sub CopyTextile()
    Dim Text As String
    Dim r As Range
    Dim Indent As Integer
    Dim IndentChar As String
    IndentChar = "*************"
    With ActiveSheet
        Indent = 1
        Text = Text & "* 開場:" & Range("B4").Text & vbCrLf
        Text = Text & "* 開始:" & Range("B5").Text & vbCrLf
        Text = Text & vbCrLf
        For Each r In Range("F1").CurrentRegion.Rows
            If Trim$(r.Columns(1).Text) <> "" Then
                If Indent = 1 Then
                    Text = Text & Left$(IndentChar, Indent) & " "
                    ' タイトル
                    Text = Text & r.Columns(1).Text & ":" & r.Columns(2).Text
                    If r.Cells(2, 2).Text = "" Then Indent = 2 ' インデント増やす
                    Text = Text & vbCrLf
                End If
                If Indent = 2 Then
                    Text = Text & Left$(IndentChar, Indent) & " "
                    ' スピーカー名
                    Text = Text & r.Columns(1).Text & ":" & r.Columns(3).Text
                    If r.Columns(4).Value <> "" Then
                        ' Twitter ID
                        Text = Text & "( ""@" & r.Columns(4).Value & """:https://twitter.com/" & r.Columns(4).Value & "/ )"
                    End If
                    ' 「タイトル」
                    Text = Text & "「" & r.Columns(5).Text & "」"
                    ' (n分)
                    Text = Text & "(" & r.Columns(6).Text
                    If r.Columns(8).Text = "不可" Then Text = Text & "/Ustreamなし"
                    Text = Text & ")"
                    If r.Cells(2, 2).Text <> "" Then Indent = 1 ' インデント減らす
                    Text = Text & vbCrLf
                End If
            End If
        Next r
    End With
    Set IE = CreateObject("InternetExplorer.Application")
    Call IE.Navigate("about:blank")
    Do While IE.Busy Or IE.Document.ReadyState <> "complete"
        DoEvents
    Loop
    IE.Document.ParentWindow.ClipboardData.ClearData "text"
    IE.Document.ParentWindow.ClipboardData.SetData "text", Text
    IE.Quit
    Set IE = Nothing
End Sub

VBAからクリップボードにコピーする場合は、IEオブジェクトを使う必要があります。インストールされているIEバージョンによっては警告ダイアログが表示されますのでご確認ください(他にも方法はあったと思いますがさらっと検索してこれが一番楽そうだったので・・・)。

こういうところで、もっとさらっと、多くの人が簡単にプログラミングできる環境になれば、多分いろいろ変わるだろうなあ・・・。 などと思った次第。


ファイルについては(某首相ではないですが)近いうちにどこかに公開しようと思います。

*1:数式で言えば、[前の行のスピーチ開始時間]+TIME(0,[スピーチ時間]+[休憩時間],0