注目の投稿

技術者として人として

 技術者として人として これまで、生きてきて、ひとりで解決していくものと考えていた。 知り合いなどの助言もあるが、それだけでも、やり切れない場合があった。 長い間、この性格を作り上げてきて正確などは、変わることがないだろうと決めつけていた。 思考は、そうそう簡単には変わらないもの。 ひとりでは、変わらないものであるということに気づくことができた。 日本では、カウンセリングという文化が浸透していないが、古くは仏教など、生活の為に、必要な事を、学ぶ機会が少ないと思う。 カウンセリングは、それを、実現できるものと思う。 ひとりでは解決できないこと、それは、正しい方法を見つけられないから。それを、学んでいないからで、専門的な第三者が心理学などを通して教えてくれることは救いとなる。 生きにくい世の中であることは間違いない。 生きやすくする方法もあると知ることができた。 技術者は孤独になるときがあり、ひとりでなんともならない時の対策方法を見失う時がある。日本ではカウンセリング文化が浸透していないような気がするが、ひとりでは解決出来ない時。救われる方法があると知る事になる。 https://t.co/LBKNwUyXg5 — chsugiyama (@chx_sugi_001) January 3, 2023

エクセルからパワーポイントのノートを書き込むVBA

エクセルからパワーポイントのノートを書き込むVBAを作成しました。


エクセルには、ページ数と、ノートの項目を入力しておきます。

セルの内容を、各ページのノートに入力します。




開いているパワーポイントに対して、処理をします。


現状の問題点

エクセルのセルの中で改行がある場合に、パワーポイントでは1行となるところを、下記の判定を追加することで、パワーポイントのノートに改行を追加することが出来ました。
これを、下記のコードに盛り込めば、対応が可能にあります。

        If InStr(str, vbLf) Then
            str = Replace(str, vbLf, vbVerticalTab)
        End If


エラーの処理がないので、パワーポイントのファイルが開いていない場合には、エラーで止まります。


改善点としては、

ファイルの指定をしておいて、一度に、複数のファイルに対して、処理をするということも検討中。




Sub ExceltoPPtNote()

    Dim varRng As Variant
    Dim intSNum As Integer
    Dim i, j As Integer
    Dim MaxPage As Long
 
    Dim PpApp As PowerPoint.Application
    Dim PpPrs As PowerPoint.Presentation

    Set PpApp = CreateObject("PowerPoint.Application")
    Set PpPrs = PpApp.Presentations.Item(1)
 
    MaxPage = Range("ページ数")
    PpApp.Visible = True        'PowerPointの表示
    intSNum = 1                 'スライド番号用変数の初期設定

    'セルの値を各ページのノートに入力
    For i = 1 To MaxPage
             
        With PpPrs.Slides(intSNum).NotesPage.Shapes.Placeholders(2).TextFrame.TextRange
            .Text = Cells(intSNum + 1, 2)
        End With
        intSNum = intSNum + 1
     
    Next

    MsgBox "処理が終了しました。"

    Set PpPrs = Nothing
    Set PpApp = Nothing

End Sub

コメント

このブログの人気の投稿

DesignSpark Mechanical オブジェクトの拡大、縮小 "Scale the body"

EXCEL VBA EXCELの表からAUTOCADの文字を書き換える. EXCEL VBA Rewrite the characters of AUTOCAD from the table of EXCEL.