PowerPoint 2010 매크로에서 텍스트 상자에 입력한 숫자를 그래프에 반영하는 방법

Qiita의 게시물, 기념해야 할 첫 번째입니다.
솔직한 프로그램 경험은 아직 부족하지만, 뭔가 도움이되면 다행입니다.

이번에는 PowerPoint 2010의 매크로 기능을 이용한 그래프 자동 수정 코드를 소개합니다.

배경



PowerPoint에 입력한 텍스트의 정보를 그래프에 자동으로 반영하기 위해서, 매크로를 만든 적이 없는 나는 Google을 의지해 그 방법을 조사하고 있었습니다. 그러나 Excel의 VBA에 대한 페이지가 많더라도 PowerPoint의 VBA 페이지는 적고 난항했습니다. 게다가 파워 포인트의 입력 정보에서 그래프의 엑셀을 조작하는 것을 기재하고 있었던 것이 보이지 않고, 다양한 페이지로부터 소스 코드를 참고로 해야 했고, 초보자의 나에게 있어서 허들은 높았다. 그래서 작성한 코드를 공유하려고했습니다.

사양


  • 텍스트 박스에 수치를 넣고 엔터를 누르면 그래프에 동적으로 반영된다.
  • 숫자 이외를 입력하거나 0~100 이외의 숫자를 입력하면 오류 메시지가 표시됩니다.
  • 텍스트 박스에는 3 자리까지 입력 가능.

  • 덧붙여 제작한 PowerPoint의 외관은 이하와 같습니다(슬라이드는 조금 외롭다).


    전제 조건



    내가 만든 PowerPoint 슬라이드는 다음과 같습니다.
  • 입력하는 텍스트 박스는, PowerPoint의 「개발」탭 > 「컨트롤」안에 있는 텍스트 박스를 사용.
  • 그래프는 원 그래프. A, B의 두 백분율을 표시합니다 (A + B = 100%).
  • 그래프의 B의 백분율을 표시하는 부분에는 엑셀상에서 「= 100 - (A를 표시하는 셀) 」를 포함한다.
  • 텍스트 박스의 이름은 "txtA", 원 그래프의 이름은 "Chart 5".
  • "txtA"속성의 MaxLength를 3으로 설정.

  • 소스 코드



    제작한 소스 코드입니다.

    슬라이드 1
    'テキストボックスでエンターキーを押すと、内容を取得してグラフに自動反映する
    Private Sub txtA_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = vbKeyReturn Then
            'KeyCodeの初期化
            KeyCode = 0
    
            'txtAの内容取得
            strTxtA = txtA.Text
    
            '数値型でなければエラー文を出力
            If Not (IsNumeric(strTxtA)) Then
                MsgBox "数値を入力してください。"
                Exit Sub
            End If
    
            'txtAの内容をInt型に変換
            intTxtA = CInt(strTxtA)
    
            '数値を0から100で入力していなければエラー文出力
            If intTxtA < 0 Or intTxtA > 100 Then
                MsgBox "数値は0から100の範囲で入力してください。"
                Exit Sub
            End If
    
            '円グラフの取得
            Set myDocument = ActivePresentation.Slides(1)
            Set pchart = myDocument.Shapes("Chart 5")
    
            '円グラフのデータの値を編集
            With pchart.Chart.ChartData
                .Activate
                .Workbook.Sheets(1).Range("B2").Value = intTxtA
                .Workbook.Close
            End With
    
        End If
    End Sub
    

    마지막으로



    매크로를 만들 때, 약간의 참고가 되면 다행입니다.
    여기까지 읽어 주셔서 감사합니다!

    좋은 웹페이지 즐겨찾기