Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


17117 / 76732 ←次へ | 前へ→

【65072】Re:テキスト入力済みと未入力が混在するオートシェイプからのテキスト取得方法
発言  ichinose  - 10/4/12(月) 6:51 -

引用なし
パスワード
   ▼rx-78gp03d さん:
おはようございます。

>テキストが入力されてないところで実行時エラーとなります。
>On Error Resume Nextで検知できるかとも思ったのですが、機能していません。
>          sText = CStr(objChar.Text)                '***←ここで「型が一致しません。」エラーが発生

では、上記のコードがエラーになる、ならないで分岐してみては?


>Private Sub ReadProcessFlowSheet(objSheetIN As Excel.Worksheet, objSheetOUT As Excel.Worksheet, sFile As String, lRow As Long)
>
>On Error Resume Next
>
>  Dim sType As String
>  Dim sText As String
>  Dim objChar As Excel.Characters
>  Dim objShape As Excel.Shape
>
>  For Each objShape In objSheetIN.Shapes
>    With objShape
>      sText = ""
>      sType = ""
>
>      Select Case .AutoShapeType
>      Case msoShapeDiamond
>        sType = "フロー内接続端子(情報)"
>      Case msoShapeOval
>        sType = "フロー内接続端子(プロセス)"
>      Case msoShapeHexagon
>        sType = "画面"
>      Case msoShapeCan
>        sType = "データベース"
>      Case msoShapePlaque
>        sType = "リアルバッチ"
>      Case msoShapeUTurnArrow
>        sType = "問題存在箇所に戻る"
>      Case msoShapePentagon
>        sType = "前工程(後工程)フローからのつなぎ"
>      Case msoShapeFlowchartProcess
>        If .ShapeRange.Line.Style = msoLineThinThin Then
>          sType = "別フロー"
>        Else
>          sType = "バッチ"
>        End If
>      Case msoShapeFlowchartPredefinedProcess
>        sType = "人の作業"
>      Case msoShapeFlowchartDocument
>        sType = "リスト・帳票"
>      Case msoShapeFlowchartStoredData
>        sType = "インターフェースファイル"
>      Case msoShapeRectangularCallout
>        sType = "補足説明1"
>      Case msoShapeCloudCallout
>        sType = "補足説明2"
>      Case Else
>        '***対象外のオブジェクト
>        sType = ""
>      End Select
>
>      '***対象オブジェクトの場合のみテキストの取得を実施
>      If sType <> "" Then
>        '***テキストが取得できる場合のみ
        Err.Clear
        sText = cstr(.TextFrame.Characters.Text)
        If Err.number<>0 Then
          sText = "テキストなし"
        End If
>
>        Call WriteShapeInfo(objSheetIN, objSheetOUT, objShape, sType, sText, sFile, lRow)    '***これが本命の処理だが、そこまでたどり着かない
>        lRow = lRow + 1
>      End If
>
>    End With
>  Next objShape
>
>End Sub

0 hits

【65071】テキスト入力済みと未入力が混在するオートシェイプからのテキスト取得方法 rx-78gp03d 10/4/11(日) 23:41 質問
【65072】Re:テキスト入力済みと未入力が混在するオ... ichinose 10/4/12(月) 6:51 発言
【65073】Re:テキスト入力済みと未入力が混在するオ... 独覚 10/4/12(月) 10:15 発言

17117 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free