戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
線のスタイルメニューで選択されているスタイルを取得したい

    [191652] 線のスタイルメニューで選択されているスタイルを取得したい-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ minoco -(2020/03/27(12:31))
    □U R L/

      初めて投稿いたします。
      Windows10にてExcel 365を使っています。
      VBAにて、今Excelが認識している「線のスタイル」や「色」を取得したいのです。
      セルに設定されている「線のスタイル」や「色」ではありません。
      メニューリボンでは、選択されている「線のスタイル」や「色」が表示されているので、その設定値を取得したいのですが、その方法をご教示いただけると幸いです。



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [191653] Re[1]: 線のスタイルメニューで選択されているスタイルを取得したい-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/03/27(14:27))
    □U R L/
      お望みの回答ではないでしょうが、コメントします。
      
      「線のスタイル」は、何の線についてかが不明です(罫線なのか、図形なのか)。
      たぶん、なんらかのオブジェクトのLineStyleプロパティでしょう。
      (いくつか実行して、そのマクロ記録を取れば判明しますよね。)
      
      その取りうる値の集合を、何かのプロパティにユーザーが取り出せる形で
      持っているかというと、それはたぶん無いと思います。(後述のXlLineStyle
      という列挙を情報提供することで十分とMS社は判断。)
      
      ヘルプ(やオブジェクトブラウザー)で確認していくのがよいと思います。
      LineStyleという文字列の上(のどこか)にカーソルを置いてF1キーで
      表示されます。
      XlLineStyleという列挙(定数の集まりのようなもの)が目指すものでしょう。
      
      色については、テーマの色、標準の色、その他の色と各種の指定が可能です。
      それをすべて列挙するんでしょうか?そもそもの目的はどういうことでしょう。
      
      Excel365を持っていないので、何を指して質問されているのか必ずしも
      一致していないかもしれませんが、取り急ぎコメントしておきます。
      




    [191656] Re[2]: 線のスタイルメニューで選択されているスタイルを取得したい-

    記事引用/メール受信=OFF■

    □投稿者/ t.take -(2020/03/27(16:48))
    □U R L/

      ht tps://www.tipsfound.com/vba/07008

      をよまれてみてはいかがでしょう




    [191658] Re[3]: 線のスタイルメニューで選択されているスタイルを取得したい-

    記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2020/03/29(07:52))
    □U R L/
      どこにあるか解らないので、罫線の作成をエミュレートし、書かれたものを表示してみました。
      マウスムーブが適当なので環境によって罫線が書かれていないかも知れません。
      色を赤にして、きちんと255が返ってくれば大丈夫だと思います。
      
      Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, _
              ByValcButtons As Long, ByVal dwExtraInfo As Long)
      Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      
      Sub main()
          Dim ws As Worksheet
          Dim dColor As Double
          Dim lStyle As Long
          Dim lWeight As Long
          Set ws = Worksheets.Add
          Application.DisplayFullScreen = True
          CommandBars("Draw Border").Controls(1).Execute
          Sleep 50
          Call mouse_event(1 Or &H8000& Or 2, 1500, 3000, 0, 0)   'range("A1")付近
          Sleep 50
          Call mouse_event(1 Or &H8000& Or 4, 8000, 8000, 0, 0)
          DoEvents
          CommandBars("Draw Border").Controls(1).Execute
          Application.DisplayFullScreen = False
          With ws.Range("A1").Borders(xlEdgeTop)
              dColor = .Color
              lStyle = .LineStyle
              lWeight = .Weight
          End With
          Application.DisplayAlerts = False
          ws.Delete
          Application.DisplayAlerts = True
          MsgBox "線の色は:" & dColor & vbCrLf & _
                  "線のスタイルは:" & lStyle & vbCrLf & _
                  "線の太さは:" & lWeight
      End Sub
      
      win10(32bits)


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191659] Re[4]: 線のスタイルメニューで選択されているスタイルを取得したい-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/03/30(05:51))
    □U R L/
      LineStyleプロパティとWeightプロパティの組み合わせで
      線のスタイルを構成しているようです。
      
      下記のコードを実行してみて、どの組み合わせでそれぞれのスタイルが
      実現できるか推定してみてください。
      
      'LineStyleとWeightの組み合わせによる罫線の描画例
      Sub 罫線描画例()
          Dim k&, j&
          Dim ary1, ary2, ary1str, ary2str
      
          'Weightの種類
          ary1 = Array(xlHairline, xlMedium, xlThick, xlThin)
          ary1str = Array("xlHairline", "xlMedium", "xlThick", "xlThin")
          
          'LineStyleの種類
          ary2 = Array(xlContinuous, xlDash, xlDashDot, xlDashDotDot, _
                      xlDot, xlDouble, xlLineStyleNone, xlSlantDashDot)
          ary2str = Array("xlContinuous", "xlDash", "xlDashDot", "xlDashDotDot", _
                      "xlDot", "xlDouble", "xlLineStyleNone", "xlSlantDashDot")
          
          '見出し等の設定
          Columns("A:I").ColumnWidth = 1#
          Range("B1,D1,F1,H1").ColumnWidth = 5#
          Columns("J").ColumnWidth = 15#
          Columns("k").ColumnWidth = 8#
          For j = 0 To 3
              Cells(1, (j + 1) * 2).Value = ary1str(j)
              Cells(2, (j + 1) * 2).Value = ary1(j)
          Next
          For k = 0 To 7
              Cells(3 + 2 * k, "J").Value = ary2str(k)
              Cells(3 + 2 * k, "K").Value = ary2(k)
          Next
          
          '両者の組み合わせによる、罫線の描画
          For j = 0 To 3
              For k = 0 To 7
                  Call setting(Cells(3 + 2 * k, (j + 1) * 2), ary1(j), ary2(k))
              Next
          Next
      End Sub
      
      Function setting(r As Range, weight As Variant, style As Variant)
          With r.Borders
              .LineStyle = style
              .ColorIndex = 0
              .TintAndShade = 0
              .weight = weight
          End With
      End Function


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191664] Re[5]: 線のスタイルメニューで選択されているスタイルを取得したい-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/04/01(20:12))
    □U R L/
      どうして全く反応がないのでしょうか。
      
      投稿は初めてということなので、
      こうした場のしきたりなどをご存じないだけだと思いますが、
      以下のような意見もあるということで聞いてください。
      
      たとえ話になりますが、
      あなたが会社員であるとして、隣の課の人に質問をしたところ、
      「お望みどおりのことは出来ないと思いますが、
        こんな方法ではどうですか」と別案回答をもらった、とします。
      その時、あなたは返事をくれた人に挨拶の一つもしませんか?
      だって、私の望むものと違うんですからと、無視したままにしますか?
      それだと、たぶん周囲から浮き上がって、最悪、仕事ができなくなります。
      
      掲示板だって同じようなもので、
      あなたがお金を払って受けているサービスなら、
      気に入らなければ黙っていてもお金を払っている対価として許されるかもしれない。
      しかし、ブティックの店員相手に会話しているんじゃないから、
      店員の言うことを気ままに聞き流して「私気に入らないわ」とうそぶくのとは、全く訳が違う。
      
      突発的なことが起きたなら致し方ないが、
      そうでなければ返事の一つもするのが普通の大人としてのマナーです。
      回答者もそれなりに時間を使っているわけだから、返事くらいするのが礼儀ですよ。
      年度末で忙しいというなら(予めわかっていることですが)、
      少し時間をくださいというコメントだけでも良いでしょう。
      
      不明の点があれば、遠慮せずに尋ねて下さい。
      黙っていられるのが一番困ります。
      




    [191692] Re[6]: 線のスタイルメニューで選択されているスタイルを取得したい-

    記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2020/04/05(16:19))
    □U R L/
      進展が無いまま、一週間が経ちました。
      マウスなんて滅多に使わないので、忘れていました。
      また備忘録として利用させていただきます。
      
      Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
      Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, _
              Optional ByVal dx As Long = 0, Optional ByVal dy As Long = 0, _
              Optional ByValcButtons As Long = 0, Optional ByVal dwExtraInfo As Long = 0)
      Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      
      Sub mouseでA1toB2を選択()
          Application.Goto Range("A1"), True         '前提条件:画面に範囲が表示されていなければならない
          mouseset Range("A1"), 2
          mouseset Range("B2"), 4
      End Sub
      Private Sub mouseset(r As Range, m As Long)
          Sleep 2
          With ActiveWindow
              SetCursorPos .PointsToScreenPixelsX((r.Width / 2 + r.Left)), _
                          .PointsToScreenPixelsY((r.Height / 2 + r.Top))
          End With
          Sleep 2
          mouse_event m
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G