banner
Vinking

Vinking

你写下的每一个BUG 都是人类反抗被人工智能统治的一颗子弹

生成 PPT 専用のクラウドフォント

Important

🔔このジェネレーターの互換性

このジェネレーターは Office 365 バージョンの PowerPoint で作成されており、Office シリーズは正常に使用できるはずです。ダウンロード前に、使用している PowerPoint が Office シリーズであることを確認してください。

🔔なぜ WPS シリーズは適用できないのか?

WPS 使用文書によると:VBA マクロ機能を使用する必要がある場合は、WPS の商業標準版または商業高級版を購入する必要があります。個人版にはマクロの使用権がありません。詳細情報は、VBA マクロの使用権を取得する方法を参照してください。

🔔このジェネレーターを他の人と共有できますか?

できます。この作品は MIT License 協定 に従っています。

🔔使用に関する問題

使用中に問題がある場合は、直接このページにコメントを残すか、i#mail.vinking.top(# を @ に置き換えてください)にメールを送信してください。迅速に返信を得ることができます。

この数日間、彼女が公開講座に参加するために、雲のフォントを使って PPT を作成する必要があると言っていました。以下のようなものです:

雲のフォント

大まかな原理は、テキストボックスを追加で 2 つコピーし、それらの文字の輪郭を調整することです。最後に、これら 3 つのテキストボックスを整列させるだけです。

雲のフォント制作

ネットで調べたところ、雲のフォントの無料チュートリアルは、個別に作成する方法を教えるだけで、非常に面倒でした。一方、ジェネレーターは有料で、デモを見たところ、プリセットの効果が少なく、あまり見栄えが良くありませんでした。その後、PPT に付属の VBA を使用して、より多くのオプションをカスタマイズできる雲のフォントジェネレーターを作成し、設定に従ってワンクリックで雲のフォントを生成してコピーできるようにしました。

ジェネレーター使用

具体的な VBA は以下の通りで、PPT 内でマクロとして使用できます:

Private Sub CommandButton1_Click()
    With ActivePresentation.Slides(1)
        If IsNumeric(.Shapes("FirstBackgroundColor_R_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("FirstBackgroundColor_G_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("FirstBackgroundColor_G_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("SecondBackgroundColor_R_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("SecondBackgroundColor_G_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("SecondBackgroundColor_B_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("TextColor_R_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("TextColor_G_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("TextColor_B_Box").OLEFormat.Object.Text) _
          And IsNumeric(.Shapes("FontSizeBox").OLEFormat.Object.Text) Then
          
            TextBoxValue = .Shapes("TextBox").OLEFormat.Object.Text
            FontSizes = .Shapes("FontSizeBox").OLEFormat.Object.Text
            
            FirstBackgroundColor_R = .Shapes("FirstBackgroundColor_R_Box").OLEFormat.Object.Text
            FirstBackgroundColor_G = .Shapes("FirstBackgroundColor_G_Box").OLEFormat.Object.Text
            FirstBackgroundColor_B = .Shapes("FirstBackgroundColor_B_Box").OLEFormat.Object.Text
            
            SecondBackgroundColor_R = .Shapes("SecondBackgroundColor_R_Box").OLEFormat.Object.Text
            SecondBackgroundColor_G = .Shapes("SecondBackgroundColor_G_Box").OLEFormat.Object.Text
            SecondBackgroundColor_B = .Shapes("SecondBackgroundColor_B_Box").OLEFormat.Object.Text
            
            TextColor_R = .Shapes("TextColor_R_Box").OLEFormat.Object.Text
            TextColor_G = .Shapes("TextColor_G_Box").OLEFormat.Object.Text
            TextColor_B = .Shapes("TextColor_B_Box").OLEFormat.Object.Text
            
            If .Shapes("Text").HasTextFrame Then
                With .Shapes("Text").TextFrame.TextRange
                    .Text = TextBoxValue
                    .Font.Size = FontSizes
                    .Font.Color.RGB = RGB(TextColor_R, TextColor_G, TextColor_B)
                End With
            End If
            
            If .Shapes("FirstBackground").HasTextFrame Then
                With .Shapes("FirstBackground")
                    .TextFrame.TextRange.Text = TextBoxValue
                    .TextFrame.TextRange.Font.Size = FontSizes
                    With .TextFrame2.TextRange.Font.Line
                        .Visible = msoTrue
                        .ForeColor.RGB = RGB(FirstBackgroundColor_R, FirstBackgroundColor_G, FirstBackgroundColor_B)
                        .Transparency = 0
                        .Visible = msoTrue
                        .Weight = 25
                    End With
                End With
            End If
            
            If .Shapes("SecondBackground").HasTextFrame Then
                With .Shapes("SecondBackground")
                    .TextFrame.TextRange.Text = TextBoxValue
                    .TextFrame.TextRange.Font.Size = FontSizes
                    With .TextFrame2.TextRange.Font.Line
                        .Visible = msoTrue
                        .ForeColor.RGB = RGB(SecondBackgroundColor_R, SecondBackgroundColor_G, SecondBackgroundColor_B)
                        .Transparency = 0
                        .Visible = msoTrue
                        .Weight = 50
                    End With
                End With
            End If
            
            With .Shapes.Range(Array("Text", "FirstBackground", "SecondBackground"))
                .TextFrame.HorizontalAnchor = msoAnchorCenter
                .TextFrame.VerticalAnchor = msoAnchorMiddle
                .TextFrame.WordWrap = msoTrue
                .TextFrame.AutoSize = ppAutoSizeShapeToFitText
                .Copy
            End With
        Else
            MsgBox "文字サイズ、背景色入力ボックスには数字を入力してください"
            End
        End If
    End With
End Sub

Private Sub CommandButton2_Click()
    With ActivePresentation.Slides(1)
        .Shapes("TextBox").OLEFormat.Object.Text = "A"
        .Shapes("FontSizeBox").OLEFormat.Object.Text = 60
        
        With .Shapes("Text").TextFrame.TextRange
            .Text = "A"
            .Font.Size = 60
            .Font.Color.RGB = RGB(0, 0, 0)
        End With
        
        With .Shapes("FirstBackground")
            .TextFrame.TextRange.Text = "A"
            .TextFrame.TextRange.Font.Size = 60
            With .TextFrame2.TextRange.Font.Line
                .Visible = msoTrue
                .ForeColor.RGB = RGB(255, 255, 255)
                .Transparency = 0
                .Visible = msoTrue
                .Weight = 25
            End With
        End With
        
        With .Shapes("SecondBackground")
            .TextFrame.TextRange.Text = "A"
            .TextFrame.TextRange.Font.Size = 60
            With .TextFrame2.TextRange.Font.Line
                .Visible = msoTrue
                .ForeColor.RGB = RGB(39, 154, 225)
                .Transparency = 0
                .Visible = msoTrue
                .Weight = 50
            End With
        End With
                
        .Shapes("TextColor_R_Box").OLEFormat.Object.Text = 0
        .Shapes("TextColor_G_Box").OLEFormat.Object.Text = 0
        .Shapes("TextColor_B_Box").OLEFormat.Object.Text = 0
        
        .Shapes("FirstBackgroundColor_R_Box").OLEFormat.Object.Text = 255
        .Shapes("FirstBackgroundColor_G_Box").OLEFormat.Object.Text = 255
        .Shapes("FirstBackgroundColor_B_Box").OLEFormat.Object.Text = 255
        
        .Shapes("SecondBackgroundColor_R_Box").OLEFormat.Object.Text = 39
        .Shapes("SecondBackgroundColor_G_Box").OLEFormat.Object.Text = 154
        .Shapes("SecondBackgroundColor_B_Box").OLEFormat.Object.Text = 225
    End With
    
    MsgBox "初期化が完了しました"
End Sub

自分で作りたくない場合は、ここに全体のジェネレーターの PPT ファイルもあります:

123 クラウドストレージ(推奨)

百度クラウドストレージ(バックアップ)

この記事は Mix Space によって xLog に同期更新されました
元のリンクは https://www.vinking.top/posts/codes/create-cloud-font-with-vba-in-ppt


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。