2022年5月17日火曜日

【マクロ】置換

Sub sample()

Dim myCell As Variant

Application.ScreenUpdating = False

myCell = Range("M2", Cells(Rows.Count, "M").End(xlUp))


For i = 1 To UBound(myCell, 1)

str0 = myCell(i, 1)

str0 = Replace(str0, "1", "A", compare:=vbTextCompare)

str0 = Replace(str0, "2", "b", compare:=vbTextCompare)

str0 = Replace(str0, "3", "C", compare:=vbTextCompare)

str0 = Replace(str0, "4", "d", compare:=vbTextCompare)

str0 = Replace(str0, "0", "X", compare:=vbTextCompare)

myCell(i, 1) = str0

Next

Range("M2", Cells(Rows.Count, "M").End(xlUp)) = myCell

Application.ScreenUpdating = True

End Sub



----------------------------------------------------------------------------

東京(  )区・市、埼玉、千葉、神奈川、その他

このような記入方法で入力された住所を置換する。

○○市や〇〇区は東京、東京は東京、埼玉は埼玉、千葉は千葉・・・

H列の値をO列に返している。


Public Sub 住所置換()

Application.ScreenUpdating = False

Dim rg As Range

Dim r As Range

Set rg = Range("H2:H" & Cells(Rows.Count, "A").End(xlUp).Row)

For Each r In rg

If Right(r.Value, 1) = "区" Or Right(r.Value, 1) = "市" Then

r.Offset(, 7).Value = "東京"

Else

r.Offset(, 7).Value = r.Value

End If

Next

Application.ScreenUpdating = True

End Sub








2022年5月9日月曜日

【マクロ】セルをダブルクリックして実行

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

 

    '■特定セルで起動する場合(セルE10)

    If Target.Address = "$E$10" Then

        MsgBox "特定セル"

    End If

    '■特定セル範囲で起動する場合(セルのC4~E5)

    If Not Intersect(Target, Range("C4:E5")) Is Nothing Then

        MsgBox "特定セル範囲"

    End If

     

    '■特定列で起動する場合(B列(2列目)の場合)

    If Target.Column = 2 Then

        MsgBox "特定列"

    End If

     

    '■特定行で起動する場合(1行目の場合)

    If Target.Row = 1 Then

        MsgBox "特定行"

    End If

     '■Trueにするとダブルクリック(セルの編集状態)はキャンセルされます

    '■Falseにするとダブルクリック(セルの編集状態)になります

    Cancel = True

End Sub

2022年3月24日木曜日

【作業中のディスプレイにユーザーフォームを表示させる方法】


フォームモジュールを右クリックしコード表示をして下記のコードを書き込む


Sub UFPositionCenter(UFOb As Object)

  '**ユーザーフォームを親ウィンドウの中央に表示する

  '参考

  'https://dz11.hatenadiary.jp/entry/2019/05/17/090258

  '標準モジュールではMeが使えないので、ユーザーフォーム側にて引数として呼び出す


  '**変数(T=Top,L=Left,W=Width,H=Height,AW=ActiveWindow,UF=UserForm)

  Dim T_AW As Long, L_AW As Long, W_AW As Long, H_AW As Long

  Dim T_UF As Long, L_UF As Long, W_UF As Long, H_UF As Long

  

  '**親ウィンドウの位置とサイズを取得

  With ActiveWindow

    T_AW = .Top

    L_AW = .Left

    W_AW = .Width

    H_AW = .Height

  End With

  

  '**UFのサイズを取得

  W_UF = UFOb.Width

  H_UF = UFOb.Height


  '**UFの表示位置を計算

  T_UF = T_AW + ((H_AW - H_UF) / 2)

  L_UF = L_AW + ((W_AW - W_UF) / 2)

  

  '**UFの表示位置を設定

  UFOb.StartUpPosition = Manual

  '**Top,Left指定時に必須(ないとLeftがずれる)

  UFOb.Top = T_UF

  UFOb.Left = L_UF

End Sub

Private Sub UserForm_Initialize()

    Call UFPositionCenter(Me)

End Sub


ThisWorkbookモジュールに書き込めばファイルを開くと同時にフォームが表示される。

Private Sub Workbook_open()

UserForm1.StartUpPosition = 1

UserForm1.Show

End Sub


2021年7月12日月曜日

【Blender】配管を作る 「面をブリッジ」を使用

【3Dどりる】ちょっと変わったモデリング問題集~解説編~【blender2.83】 - YouTube








円を作り面を張る。








円を増やす。

すべてを選択し右クリックし結合する。

ひとつのオブジェクトにする。








つなげたい面を選択し右クリックから面をブリッジを押す。








分割数を調整する。








管の厚み付けするために両端の面だけ削除する。








モディファイアからソリッド化で厚みを付ける。








完成。

2021年7月8日木曜日

【Blender】ウェイトペイント

 Vキーで頂点選択できる。

塗りたい面の頂点を選択し、Shift+Kきーで一発で塗れる。

初心者入門・ボーンとウェイトペイント解説【blender2.82】 - YouTube

8:00あたりから解説


【Blender】レイヤーの階層表示

Shiftキーを押しながら横向き三角をクリックと

これが・・・






中身が一括で見えるのだ。戻すときも同じでShiftキーを押しながら三角をクリック



2021年6月17日木曜日

【Blender】面の裏表

 表が青で裏が赤く表示され、面がひっくり返っている所が分かる。



2021年6月15日火曜日

【Blender】アドオン carver

 カットした所がいびつになる








これを回避する方法

自動スムーズにチェック



2021年6月10日木曜日

【Blender】コントローラー

ドアの下のアクティブになっている線、回りの黒い線をコントローラーと言う。

使い方などは検索してくれ。




【Blender】回転軸の固定

回転させるオブジェクトを指定し、Nキーを押してプロパティ・シェルフを出す。

回転のところで回転させたくない方向軸に鍵を掛ける。



2021年6月7日月曜日

【Blender】窓枠みたいなの

 通常だと、Eキー→Sキーとやりそうだが、それをやると上の画像のように

均等の幅にならない。

面を選択肢し、Iキーを押すと下の画像のように均等な幅になる。



2021年5月20日木曜日

【Blender】パイプを曲げる「スピン」の使い方

 Blender: スピン(Spin)の使用方法 | reflectorange.net


Blender: スピン(Spin)の使用方法

 

Blenderのスピン(Spin)という機能を紹介します。

1. スピン(Spin)とは

スピン(Spin)とは選択した点・辺・面を3Dカーソルを中心に円を描くように押し出す機能で、画像1では選択した面をスピン(Spin)によって押し出しています。

blender spin

画像1

また、画像2のように辺を押し出して回転体を作成することも可能です。

blender spin

画像2

2. スピン(Spin)の使用方法

以下で画像1と画像2のメッシュをスピン(Spin)を使用して作成する方法を紹介します。
3Dカーソルの位置とスピン(Spin)させる軸が重要な点となります。

2.1 画像1のメッシュの作成

Cubeを追加したら、サイドバー(Sidebar)→ビュー(View)→3Dカーソル(3D Cursor)→位置(Location)のXを2m、Zを1mに設定して3Dカーソルの位置をスピン(Spin)の円の中心となる位置へ移動させます(画像3参照)。3Dカーソルは別の方法で移動させても構いません。

blender spin

画像3

Cubeを選択した状態で編集モード(Edit Mode)に切り替えて、ツールバー(Toolbar)からスピン(Spin)を選択します(画像4参照)。

blender spin

画像4

スピン(Spin)を選択したことにより両端に+が付いた青いハンドルが表示されますが、これはスピン(Spin)する軸を表示しています。
サイドバー(Sidebar)→ツール(Tool)→アクティブツール(Activetool)→スピン(Spin)→座標軸(Axis)で変更が可能なので(ツールの設定(Toolsettings)などでも変更可能です)、ここではY軸回転になるように座標軸(Axis)をYに変更しておきます(画像5参照)。

blender spin

画像5

画像6のようにCubeの上部の面だけを選択したら、ハンドルの+の部分(ふたつのうちどちらでも可)をつかんで回転させるようにドラッグすると、

blender spin

画像6

画像7のように3Dカーソルを中心に円を描くように選択した面を押し出すことができます。

blender spin

画像7

押し出しの途中でマウスボタンを放すと一時的に形状が確定しますが、3Dビューポート(3D Viewport)の左下にあるスピン(Spin)内で細かな設定が可能です(画像8参照)。

blender spin

画像8

画像8のようにステップ(Steps)を24、角度(Angle)を-180°にすると、画像9のようになります。

blender spin

画像9

設定が終わったら、マウスの左ボタンを3Dビューポート(3D Viewport)上でクリックすると、スピン(Spin)の設定項目が消えて、形状が確定します。

2.2 画像2のメッシュの作成

画像10のような形状を作成して、3DカーソルはXYZ軸とも0mの位置に移動させます。

blender spin

画像10

スピン(Spin)の座標軸(Axis)はZとして、頂点のすべてを選択した状態で、ハンドルの+の部分をつかんで回転させるようにドラッグさせます。
Ctrlキーを押したままドラッグさせると5°間隔でスナップするので、360°回転させると画像10のような回転体が作成できます。

blender spin

画像11

左下のスピン(Spin)の設定の自動マージ(Auto Merge)にチェックが入っている場合は、360°回転させたときに重なった頂点が自動でマージされます。

3. 補足

  • ハンドルの+の部分以外をつかんでドラッグすると、見ている視点に合わせてスピン(Spin)するようになります。
  • スピン(Spin)は3Dカーソルを中心として実行されますが、形状が一時的に確定している状態で表示されるマニピュレーターを使用して、中心の移動や回転の向きが変更可能です。左下にあるスピン(Spin)の設定では中心(Center)と座標軸(Axis)です。
  • 形状が一時的に確定している状態でスピン(Spin)のハンドルを操作してしまうと、形状を確定して、新たなスピン(Spin)を作成してしまうので注意してください。
    形状が一時的に確定している状態でも、視点の移動・回転などの操作は可能です。

以上、Blenderの「スピン(Spin)の使用方法」でした。


※この記事で使用しているのはBlender 2.92です。

コメント