[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> 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でした。


フィードバック

愚痴系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.019を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

三流君の主なリンク先

[アクセスランキング] [サイトマップ] [リンク先・相互リンク先など]
三流プログラマー 業務の愚痴 掲示板 バックナンバー 登録と解除
コンビニのオモテとウラ話 掲示板 バックナンバー 登録と解除
VBAで楽しくプログラミング 掲示板 バックナンバー 登録と解除
ASPで遊ぶ、失敗する 掲示板 バックナンバー 登録と解除
www.ken3.org(サイト内)から Google を利用して、

Ken3の日記(weblog) -- [広告・副収入系] [プログラマー業務の愚痴] [VBA系の話題] [ASP系の話題] [コンビニ系ネタ] [その他]

その他 宣伝広告