[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> No.019 Access キャラクタコード?って何?

Access キャラクタコード?って何?


本文(発行内容)


<Access キャラクタコード?って何?>
目次
1.はじめの挨拶 
2.キャラクタコード?って何?
3.VBAだと?
4.おわりの挨拶
----------------------------------------------------------------------------
/*
 * 1.こんにちは
*/
こんにちは。

今回は、一息ついて、
キャラクタコード?って何?
を書いてみたいと思います。

ハッシュと二分検索は?画像の件は?ローマ字変換は?
・・・・・・・・
もしもし?聞こえてる?
・・・.....

見逃してください(先に進ませてください。)

じゃ、今回は、いいや、速く進めな。

/*
 * 2.キャラクタコード?って何?
*/
会話の中で、20(ニイマル)だったら?
とか、聞いたことありませんか?

Nullだったらは、よく聞くけど、20(ニイマル)は、聞かないなぁ

そうですか。

キャラクタコード or アスキーコードって聞いた事ありますか?

JISコードとかじゃなくて?あっ、ユニコード?EUCコード?

難しい話に、持っていかないで下さい。
えっとですね。
キャラクタコード or アスキーコード
まぁ、反論はかくごして、
半角文字の文字コードって言っていいのかな。

スペースが16進で20
1 が 16進で31
A が 16進で41
ア が 16進でB1
と、1文字1文字、コードが決まってます。

だから、なに?

通常の計算は、
100-50とか、数値ですよね

まぁ、そうですね。

じゃ、文字B−文字Aは(’B’−’A’)

そんなのできないよ。

言い方、悪かったです。
Bの文字コード − Aの文字コードは?

1? あまり、なっとくいかないけど。

はい、正解です。
では、Aの文字コード16進で41+3は?

なめんなよ、16進で44でしょ。

キャラクタコード表で16進数の44は?

キャラクタコード表って、どこにあるんだよ。
オレ持ってないよ。

う〜ん、どこにあるかなぁ?
まぁ、いいや、16進44に対応する文字は、"D"です。

こんな会話やってても、意味ないので、
Access VBAでサンプル作ります。







/*
 * 3.VBAだと?
*/
例題として、
InputBoxから文字列を受け取ります
その中のA〜Zをa〜zに変換して、
msgboxで表示します。
----
Private Sub B0_AZtoaz_Click()

    Dim strMOTO As String
    Dim strSAKI As String
    Dim strCHK As String
    Dim nCNT As Integer
    Dim nSA As Integer
    
    'ここで、文字を入れる、、
    strMOTO = InputBox("好きな文字列を入れてください")
    
    '入力文字数のチェック
    If Len(strMOTO) = 0 Then
        MsgBox "0文字だとテストになりませんよ、、、"
        Exit Sub
    End If
    
    '初期化です
    strSAKI = ""
    
    '入力された文字数分、1文字毎に処理する
    For nCNT = 1 To Len(strMOTO)
        
        strCHK = Mid(strMOTO, nCNT, 1) '一文字取り出す
        
        'A-Z判断
        If Asc("A") <= Asc(strCHK) And Asc(strCHK) <= Asc("Z") Then
            nSA = Asc(strCHK) - Asc("A")  'Aからどれだけ離れているか?
            strCHK = Chr(Asc("a") + nSA)  'aに求めた差を+する。aから移動
        End If
        
        '結果の文字を&でプラスする
        strSAKI = strSAKI & strCHK
        
    Next nCNT
    
    '結果の表示
    MsgBox strMOTO & vbCrLf & "から" & vbCrLf & strSAKI

End Sub
----
なんか、サンプルにキレがないなぁ、、、
何か質問は?

いいですか、
    'ここで、文字を入れる、、
    strMOTO = InputBox("好きな文字列を入れてください")
ってなんですか?

あまり、使わないのですが、
InputBoxを使用すると、入力用のウインドウが出て、
入力された結果を返してくれます。
ここでは、任意の文字を入れさせたかったので、
使用しています。
Accessだとフォームのme!DATA とかでもOKです。

素朴な質問なんですが、
Len(strMOTO) , Mid(strMOTO, nCNT, 1) , Asc("A")
ってなんですか?Chrって?

えっとですね、
len() --> 文字数を返してくれます
mid() --> mid("ABCDEFG", 2 , 3) --> 2文字目から三文字分文字を抜き出します
asc() --> アスキーコードを返します
chr() --> chr(&h41) --> 指定したコードの文字を返します
詳しくは、ヘルプを見るか、サンプルをいろいろ見て、なれてください。

単体は、いいから、詳しく、意味を教えてくださいよ。

    '入力文字数のチェック
    If Len(strMOTO) = 0 Then
        MsgBox "0文字だとテストになりませんよ、、、"
        Exit Sub
    End If

これは、inputboxで何も入力しない場合を考えて、
受け取った、文字数を調べています。
0文字の場合、メッセージを出して、終了してます。

        'A-Z判断
        If Asc("A") <= Asc(strCHK) And Asc(strCHK) <= Asc("Z") Then
            nSA = Asc(strCHK) - Asc("A")  'Aからどれだけ離れているか?
            strCHK = Chr(Asc("a") + nSA)  'aに求めた差を+する。aから移動
        End If

なんか、ごちゃごちゃ、してますね。
えっと、Ifで、コードAより大きくコードZより小さいか聞いて、
その後、−”A”をして差を求めて、”a”を+してる?
*Dの時、"D"-"A" が3、、で、"a"+3、3文字分で"d"になる?

なんか、よくわからないや、、
あと、
    '結果の表示
    MsgBox strMOTO & vbCrLf & "から" & vbCrLf & strSAKI
の中の、vbCrLfってなに?

結果を改行させたいので、使ってます。
試しに MsgBox "A" & vbCrLf & "B" とやってみてください。

1つ言っていい

どうぞ。

strconv("ABCDEFG", vbLowerCase)
でできるんじゃない。。。

そうだけど、説明したかったの、、、
strMOTO = InputBox("好きな文字列を入れてください")
MsgBox strMOTO & vbCrLf & "から" & vbCrLf & strconv(strMOTO, vbLowerCase)
じゃ、コードの説明にならないでしょ、、、

/*
 * 4.おわりの挨拶
*/

strconv("ABCDEFG", vbLowerCase)
の内部の動きとは、違うと思いますが、
1つの関数でできてることが、
実際は、いろいろな組み合わせで
動いているんだなぁ、、、ていどに思っていただければ、、、
今回の講座は、成功かなぁ?

なかなか、説明、難しい、、と思いつつ、今回も軽めにサヨナラです。

違うパターンのサンプル、
HPにUP
hosoku/019/index.html
して置くので、お時間のある人は、見てください。

三流PGのKen3でした。



ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]