vbaで、オートシェイプ文字列、各下線取得について

このQ&Aのポイント
  • Excel図形内のテキストの編集で、マウスをドラッグしてテキストの領域を選択後、コンテキストメニューから、フォント(F)-フォント(設定ダイアログ)画面-[フォント]タブ上に、下線のスタイルが、複数あります。
  • テキスト設定した場合、vba上から下線のスタイルを取得する方法が、知りたいです。
  • 「1.」~「16.」で、下線のスタイルをvbaから取得するには?
回答を見る
  • ベストアンサー

vbaで、オートシェイプ文字列、各下線取得について

動作環境 OS:Windows7(64Bit) Home Premium SP1 MS:Office Version2007 SP3 Excel図形内のテキストの編集で、マウスをドラッグしてテキストの領域を選択後、コンテキスト メニューから、フォント(F)-フォント(設定ダイアログ)画面-[フォント]タブ上に、下線のスタイルが、 複数あります。 テキスト設定した場合、vba上から下線のスタイルを取得する方法が、知りたいです。 大体、目途は、付いています。 どなたか、ご指導願います。 ■現在、自分が、分かっている下線のスタイルを取得するPG 下記の方法ですと、MsgBoxで、.Font.Underline=2が取得されます。 For Each wkbWorksheets In ActiveWorkbook.Worksheets For Each wksShapes In wkbWorksheets.Shapes With wksShapes.TextFrame.Characters MsgBox .Font.Underline End With Next wksShapes Next wkbWorksheets ※「1.」~「16.」で、下線のスタイルをvbaから取得するには? 1.一重線 2.二重線 3.太線 4.点線 5.太点線 6.破線 7.太破線 8.長破線 9.長太破線 10.一点破線 11.太一点破線 12.二点破線 13.太二点破線 14.波線 15.太波線 16.二重波線

質問者が選んだベストアンサー

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

 すみません。もう一か所書き換えていたのにうっかりコピーし忘れていました。 With wksShapes.TextFrame2.TextRange.Characters MsgBox .Font.UnderlineStyle Excel 2007でも確認しました。

その他の回答 (1)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

面倒なので最初のほうと最後だけ調べてみましたが なし0の次は一重線2 二重波線17のようでした。 もしかすると1がないのかもしれません。調べてみてください。 MsgBox .Font.UnderlineStyle Windows8.1  Office2013です。

6ass3eu6
質問者

補足

>MsgBox .Font.UnderlineStyle Excel(Office)2007ですと、下記のエラーが出ます。 -------------------- 実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。 -------------------- 更なる、ご指導願います(__)。

関連するQ&A

  • vbaマクロ、オートシェイプの文字列各下線について

    動作環境 OS:Windows7(64Bit) Home Premium SP1 MS:Office Version2007 SP3 Excel図形内のテキストの編集で、マウスをドラッグしてテキストの領域を選択後、コンテキスト メニューから、フォント(F)-フォント(設定ダイアログ)画面-[フォント]タブ上に、下線のスタイルが、 複数あります。 訳が合って、この各下線の表意定数を、知りたいのです。 大体、目途は、付いています。 どなたか、ご指導願います。 ■各下線の表意定数 括弧内の?を、xl~のように知りたいです。 後、クエスチョン以外も、間違っている場合、教えて下さい。 1.一重線(xlSingle) 2.二重線(xlDouble) 3.太線(xlMedium) 4.点線(xlDot) 5.太点線(?) 6.破線(xlDash) 7.太破線(?) 8.長破線(?) 9.長太破線(?) 10.一点破線(xlDashDot) 11.太一点破線(?) 12.二点破線(xlDashDotDot) 13.太二点破線(?) 14.波線(?) 15.太波線(?) 16.二重波線(?)

  • vbaで、オートシェイプ文字列、下線色取得について

    動作環境 OS:Windows7(64Bit) Home Premium SP1 MS:Office Version2007 SP3 Excel図形内のテキストの編集で、マウスをドラッグしてテキストの領域を選択後、コンテキスト メニューから、フォント(F)-フォント(設定ダイアログ)画面-[フォント]タブ上に、下線の色が、 あります。 テキスト設定した場合、vba上から下線の色を取得する方法が、知りたいです。 大体、目途は、付いています。 どなたか、ご指導願います。 ■現在、自分が、分かっている下線の色を取得するPG 下記の方法ですと、全てエラーです。 For Each wkbWorksheets In ActiveWorkbook.Worksheets For Each wksShapes In wkbWorksheets.Shapes With wksShapes.TextFrame2.TextRange.Characters MsgBox .Font.UnderlineStyle.ColorIndex MsgBox .Font.UnderlineStyleColorIndex MsgBox .Font.Underline.ColorIndex MsgBox .Font.UnderlineColorIndex End With Next wksShapes Next wkbWorksheets

  • vbaで、オートシェイプ文字幅と間隔について

    動作環境 OS:Windows7(64Bit) Home Premium SP1 MS:Office Version2007 SP3 Excel図形内のテキスト編集で、マウスをドラッグしてテキストの領域を選択後、コンテキスト メニューから、フォント(F)-フォント(設定ダイアログ)画面-[文字幅と間隔]タブ上に、間隔と幅が、 あります(画像参照)。 テキスト設定した場合、vba上から文字間隔と幅を取得する方法が、知りたいです。 それと、カーニングもついでに、取得する方法が、知りたいです。 大体、目途は、付いています。 どなたか、ご指導願います。 ■現在、自分が、分かっている文字間隔と幅を取得するPG(URL参照) http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1188387871 下記の方法ですと、MsgBoxで、[文字間隔を広げる]設定値が取得されます。 For Each wkbWorksheets In ActiveWorkbook.Worksheets For Each wksShapes In wkbWorksheets.Shapes With wksShapes.TextFrame2.TextRange.Characters MsgBox .Font.Spacing End With Next wksShapes Next wkbWorksheets ※[標準]、[文字間隔をつめる]、[カーニング]で、vbaから設定値を取得するには?

  • スタイルシートで指定したアンダーラインの種類の変更。

    以下のようにアンダーラインをひいています。 <FONT STYLE='TEXT-DECORATION:UNDERLINE;>ここにアンダーライン</FONT> このアンダーラインを点線・破線にしたいのですが、どのように指定したらいいのでしょうか?

    • ベストアンサー
    • HTML
  • エクセル 下線の付いた文字をカウントしたい

    ご覧いただきありがとうございます。 エクセルで下線の付いたアルファベットをカウントしたいのですが、関数では不可能という事を知り、色々調べた結果、VBAで下線の付いた【数字】をカウントする方法を知りました。 これを【アルファベット】をカウントするものにしたいのですが、【IsNumeric】の部分を違うものに変更すれば可能なのでしょうか? どのように書き変えればカウント出来るのか教えていただきたいです。 よろしくお願い致します。 ◯下線の付いた数字をカウントするマクロです。 ⬇︎ Function sumUnderline(myRng As Range) As Variant Application.Volatile For Each c In Intersect(myRng, ActiveSheet.UsedRange) If IsNumeric(c) And c.Font.Underline = xlUnderlineStyleSingle Then sumUnderline = sumUnderline + c Next End Function

  • エクセル2003でセルの中の文字に二重取り消し線や下線を引く方法について教えてください。

    資料を作っている関係で質問します。 エクセル2003でセルの中の文字に二重取り消し線や下線を引く方法について教えてください。 例えば、添付した画像の「ああ」のところに二重取り消し線を引き、「いい」のところに下線を引き、「うう」のところに波線を引くにはどうすればよいのでしょうか。 ワード2003だと、「ああ」のところを反転表示させた後、右クリックしてフォントを出せば、文字飾りという項目が出てきますが、エクセルにはそういう機能はないのでしょうか。 よろしくお願いします。

  • 実線と破線(点線)の下線を付けたい。

    実線と破線(点線)の下線を付けたい。 同じ文字に実線と破線の下線を付けたいので  <span style="border-bottom:dashed; border-bottom-width:1px;">あ<u>い</u>う</span> としたところ、IEでは見やすく表示されたのですが、FireFoxでは実線と破線がくっついてしまい、見やすくありません。 これを離して表示させるにはどうしたらいいのでしょうか。

    • ベストアンサー
    • HTML
  • ExcelのVBAで下線部分の取得・文字の挿入

    画像のように、A列の文字をC列のようにしたいと考えています。 http://okwave.jp/qa/q4307830.htmlを参考に以下のコードとしました。 Sub test01() Dim i As Integer, n As Integer, s As Integer, l As Integer i = Len(ActiveCell) For n = 1 To i If ActiveCell.Characters(n, 1).Font.Underline <> xlNone Then s = n Exit For End If Next If s > 0 Then For n = s + 1 To i If ActiveCell.Characters(n, 1).Font.Underline = xlNone Then l = n - 1 Exit For End If Next End If If l = 0 Then l = i End If MsgBox "開始点:" & s & vbCrLf & "終了点:" & l End Sub ところが、A5,A6の処理がうまくいきません。また、"["や"]"の挿入の方法もわかりません。 教えていただければ幸いです。よろしくお願いいたします。 使用OS:Windows7 使用ソフト:Microsoft Excel 2000~2010

  • Excel VBAのオートシェイプの名前の取得(?)

    いつもお世話になっております。 ある図形[名前:グループ1](イメージとテキストをグループ化したもの)と ある図形[名前:グループ2](イメージとテキストをグループ化したもの)を コネクター[名前:コネクター1]で接続しています。 (□―□ コンナカンジ・・・) 画面上のどちらかの図形をクリックした時に、 (1)クリックされた図形の名前を取得 (2)クリックされた図形に繋がっているコネクタの情報を取得、 (3)さらにそのコネクタの接続先の図形の名前を取得する ・・・というようなVBAのプログラムを組んでいるのですが・・・、 (1)(クリックされたオートシェイプの名前を取得) Dim objShape As Shape Dim ShapeName as string Set objShape = ActiveSheet.Shapes(Application.Caller) ShapeName = objShape.name (2)(繋がっているコネクタの情報を取得) ※正確には画面上の全シェイプをチェックしコネクタなら配列に格納 For Each sh In ActiveSheet.Shapes 'コネクタ検索 If (sh.Connector = msoTrue) Then Set con(i) = sh i = i + 1 End If Next この後、 If strShapeName = con(i).ConnectorFormat.BeginConnectedShape.Name then・・・ If strShapeName = con(i).ConnectorFormat.EndConnectedShape.Name Then・・・ というチェックをし、Trueなら、選択した図形にくっついているコネクタなんだな・・・というチェックをしたいのですが、ここで質問です。 (1)の段階で選択された図形の名前は、"グループ1"。 しかし、(2)のcon(i).ConnectorFormat.BeginConnectedShape.Nameでコネクタと繋がっている同じ図形の名前は、VBA上では何故か"Freeform 1"という名前を取得してしまいます。 これでは永遠に一致する事はありません。 Excelのワークシート上の左上にある名前空間(?シェイプを選択すると名前が出てくるところ・・・)には"グループ1"と表示されます。 しかし、ここに"Freeform 1"と入れても同じ図形が選択されます。 同じ図形なのに何故二つの名前を持ってしまっているのでしょうか・・・? そしてどうやったら、con(i).ConnectorFormat.BeginConnectedShape.Nameで、"グループ1"の名前を取得するのでしょうか?? どなたかご教授下さい。

  • wordで選択した部分の前後に文字列を挿入するマクロを作成したいと思っ

    wordで選択した部分の前後に文字列を挿入するマクロを作成したいと思っています。 Word文章中から二重下線を検索しマーカーを付けています。 その検索したマーカーが付いている前に例えば"あいう"後に"ABC"と入れる場合どうすれば良いのでしょうか? Selection.InsertBefore Selection.InsertAfter 等を使って入れられる事はわかりましたがうまく入れる事が出来ません。 どなたかご教授頂けると幸いです。 他のやり方もあれば是非宜しくお願い致します。 Sub UnderlineDouble() ' ' 検索条件で二重下線、置換条件で蛍光ペン ' With Selection.Find .ClearFormatting .Replacement.ClearFormatting '検索で二重下線 .Font.Underline = wdUnderlineDouble .Text = "" '置換で蛍光ペン .Replacement.Highlight = True .Replacement.Text = "^&" 'その他の条件 .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .CorrectHangulEndings = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll MsgBox "完了" End Sub