3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

リストの中から乱数で選んだ項目を表示したい – Excelマクロ・VBA

2013年5月28日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

今、自分向けにつくっているツールから。

シート「quote」のA列にある引用句のリストから3つを選び、シート「main」のセルA1〜A3に書き出すマクロ。
ついでに、太字、イタリック、赤、青、緑、黒(というか、デフォルトのフォント色)の中で表示を切り替えられるようにしてみた。

Public Sub SetQuote()
    Dim wT As Worksheet, wF As Worksheet
    Set wT = Worksheets("main")
    Set wF = Worksheets("quote")
    
    Dim cF As Long
    cF = wF.Range("A1").CurrentRegion.Count
    With wT
        .Range("A1").Value = "[1] " & wF.Range("A" & WorksheetFunction.Floor((Rnd() * cF) + 1, 1)).Value
        .Range("A2").Value = "[2] " & wF.Range("A" & WorksheetFunction.Floor((Rnd() * cF) + 1, 1)).Value
        .Range("A3").Value = "[3] " & wF.Range("A" & WorksheetFunction.Floor((Rnd() * cF) + 1, 1)).Value
    End With
    
    Dim r As Range
    For Each r In wT.Range("A1:A3")
        With r.Font
            Select Case WorksheetFunction.Floor(Rnd() * 4, 1)
                Case 0
                    .Color = vbRed
                Case 1
                    .Color = vbBlue
                Case 2
                    .Color = vbGreen
                Case 2
                    .ColorIndex = 0 'default
            End Select
            .Bold = WorksheetFunction.Floor(Rnd() * 2, 1) Mod 2 = 0
            .Italic = WorksheetFunction.Floor(Rnd() * 2, 1) Mod 2 = 0
        End With
    Next
End Sub
r.font.Bold = WorksheetFunction.Floor(Rnd() * 2, 1) Mod 2 = 0

て式、解釈できますか?

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド