[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『楕円で囲んだ文字を取得する』(東九)
単一セルに「昭和 平成 令和」とあります。
元号を図形楕円で囲んでいます。
囲まれた元号の文字を取得するすることは出来ますか。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
オートシェイプの座標とセルの座標の比較で、 できなくもないような気がしますが、正解率100%は保証できないと思います
オートシェイプがセルの 左側あたり、真ん中あたり、右側あたり くらいの判定です。 昭和 平成 令和 がセルのどのあたりに配置されているかが問題になるので、 試しながら調整する必要があるかもしれません
紙の帳票の見た目だけを再現してしまうと、処理を自動化する場合の足かせになりますね デジタル時代にはデジタル時代にあった帳票の作り方が必要です ( ´・ω・`) 2025/08/19(火) 17:09:58
こういう方法はいかがでしょう?
[[20250403141506]] 『画像自動変換を使って表作成』(いわ)
(OK) 2025/08/19(火) 18:02:11
右隣のセルに結果を返す場合。
Sub Oval_Enclosed()
Dim i As Long
Dim r As Range, Shp As Shape, ShpRng As ShapeRange
Dim s As Shape, g As Shape
Dim ft As Long
Dim px As Single, py As Single
Application.ScreenUpdating = False
For Each s In ActiveSheet.Shapes
If s.Type = msoAutoShape Then
Select Case s.AutoShapeType
Case msoShapeOval, msoShapeNotPrimitive
px = s.Left + s.Width / 2
py = s.Top + s.Height / 2
Set r = s.TopLeftCell
ft = r.Font.Color
For i = 1 To r.Characters.Count
Select Case r.Characters(i, 1).Text
Case " ", " ", "・"
r.Characters(i, 1).Font.Color = vbWhite
End Select
Next i
r.CopyPicture Appearance:=xlScreen, Format:=xlPicture
r.Font.Color = ft
ActiveSheet.PasteSpecial Format:="Microsoft Office 描画オブジェクト"
Set Shp = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
Set ShpRng = Shp.Ungroup
For Each g In ShpRng.GroupItems
Select Case g.AutoShapeType
Case msoShapeOval, msoShapeNotPrimitive
px = g.Left + g.Width / 2
py = g.Top + g.Height / 2
Exit For
End Select
Next
For Each g In ShpRng.GroupItems
If g.AutoShapeType = msoShapeRectangle Then
If g.TextFrame.Characters.Count > 0 Then
If g.Left < px And px < g.Left + g.Width Then
If g.Top < py And py < g.Top + g.Height Then
r.Offset(0, 1).Value = g.TextFrame.Characters.Text
Exit For
End If
End If
End If
End If
Next
ShpRng.Delete
End Select
End If
Next s
Application.ScreenUpdating = True
End Sub
(んなっと) 2025/08/20(水) 16:44:53
>>を考慮して考えてみます。 フォームコントロールのチェックボックスを利用しました。 結果は以下の通りです。 行数にして25行あります。
|[A] |[B] |[C] |[D] |[E] |[F]|[G]|[H] |[I] |[J]
[1] | 元号 |年 |歳 | | | チェックボックス判定 |
[2] |☑昭和|□平成|□令和|25 年| 75| | |TRUE |FALSE|FALSE
[3] |□昭和|☑平成|□令和|26 年| 11| | |FALSE |TRUE |FALSE
[4] |☑昭和|☑平成|□令和|27 年|☑は1つ | | |TRUE |TRUE |FALSE
[5] |□昭和|□平成|□令和|28 年| | | |FALSE |FALSE|FALSE
[6] |□昭和|☑平成|□令和|29 年| 8| | |FALSE |TRUE |FALSE
[7] |□昭和|□平成|☑令和| | | | |FALSE |FALSE|TRUE
(んなっと)さんコードの提供有難うございました。 最初は一行目だけ右列に表示されるだけでした。 ( ´・ω・`)さんの「試しながら調整する必要があるかもしれません」を参考に してすべて表示できるようになりました。 これから入力フォームを作成します。
回答してくださった方々有難うございました。
(東九) 2025/08/30(土) 17:42:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.