注目の投稿

技術者として人として

 技術者として人として これまで、生きてきて、ひとりで解決していくものと考えていた。 知り合いなどの助言もあるが、それだけでも、やり切れない場合があった。 長い間、この性格を作り上げてきて正確などは、変わることがないだろうと決めつけていた。 思考は、そうそう簡単には変わらないもの。 ひとりでは、変わらないものであるということに気づくことができた。 日本では、カウンセリングという文化が浸透していないが、古くは仏教など、生活の為に、必要な事を、学ぶ機会が少ないと思う。 カウンセリングは、それを、実現できるものと思う。 ひとりでは解決できないこと、それは、正しい方法を見つけられないから。それを、学んでいないからで、専門的な第三者が心理学などを通して教えてくれることは救いとなる。 生きにくい世の中であることは間違いない。 生きやすくする方法もあると知ることができた。 技術者は孤独になるときがあり、ひとりでなんともならない時の対策方法を見失う時がある。日本ではカウンセリング文化が浸透していないような気がするが、ひとりでは解決出来ない時。救われる方法があると知る事になる。 https://t.co/LBKNwUyXg5 — chsugiyama (@chx_sugi_001) January 3, 2023

エクセル WinからMacへ 改行コード文字化け 対応

エクセルの改行は、
WIN で作成したものを、MACで開いた場合に、改行以降が文字化けしてしまうとのこと。

MAC OD
WIN OD OA

エクセルの関数では、対応が出来ないので、VBAで対応することにしました。

列と、行の範囲をして、マクロを実行します。

処理するシートを、"Master" シートとしています。

処理する行をエクセルのセルに名前をつけておきます。
"RowStart" 
"RowEnd"  

"ColumnStart"
"ColumnEnd"


名前をつけておくと、
 VBAで、エクセルの名前が使えるので便利なことと、
 エクセルシートのシートで、挿入、削除などで、位置がかわっても良い。
という利点があります。


結果の確認方法
 エクセルファイルでは、変更が出来たかどうかが、わかりませんので、Bz エディタなどの、制御コードがわかるエディタで確認します。



' Change Cr Code Master Data
' Excel to Mac Code
' 0D 0F to OD
Sub Mac_CrCodeWord()
    Dim i
    Dim i2

    Dim ws_Edit As Worksheet    ' Master Sheet
    Dim ws_Main As Worksheet    ' Master Sheet

    Set ws_Edit = Worksheets("Edit")
    Set ws_Main = Worksheets("Master")


    ' Row
    Dim DT_max
    Dim DT_min
 
    ' Column
    Dim DtMaxColumn
    Dim DtMinColumn
    Dim column1

    Dim StrDt
    Dim StrDtAfter

    ' column setting 列の設定
    DtMinColumn = ws_Edit.Range("ColumnStart")
    DtMaxColumn = ws_Edit.Range("ColumnEnd")

    '  Data Min Max From Edit1 Sheet
    ' エクセルのシートに名前をつけておく
    DT_max = ws_Edit.Range("RowEnd")
    DT_min = ws_Edit.Range("RowStart")

    '
    For i = DT_min To DT_max                                ' Processing for each row
        For column1 = DtMinColumn To DtMinColumn            ' Processing for each column
            StrDtAfter = ""
            StrDt = ws_Main.Cells(i, column1)
            If InStr(StrDt, vbCrLf) Then
                StrDtAfter = Replace(StrDt, vbCrLf, vbCr)   '0D form OD 0A
                ws_Main.Cells(i, column1) = StrDtAfter
            End If
        Next column1                                        ' Processing for each column
    Next i                                                  ' Processing for each row

End Sub






コメント

このブログの人気の投稿

DesignSpark Mechanical オブジェクトの拡大、縮小 "Scale the body"

EXCEL VBA EXCELの表からAUTOCADの文字を書き換える. EXCEL VBA Rewrite the characters of AUTOCAD from the table of EXCEL.

エクセルからパワーポイントのノートを書き込むVBA