VBはまだ始めたばかりで本当に初歩的なことかもしれませんが分かる方がおられたら是非教えて下さい。
text1.textから取り込んだ文字列を”一文字ずつ”(Dim a(100) as stringで宣言した)配列に格納したいのですがどうしたらいいのでしょうか??
<例>text1.textに"abc"と入力しcommandbuttonを押すとa(0)に"a"がa(1)に"b"がa(2)に"c"が格納されるといったかんじです。
ちなみに今私がしたいのはtext1.textに、ある文字列を入れその文字列を文字コードに変換しそれを一文字分ずつ+1してまたそのコードを文字に直しtext2.textに出力するというものです(ようは簡単な暗号化ですね)。
私はAscとChrコマンドを利用して1文字ずつコードをずらしていこうと思っているのですが、他に良い方法などあるのでしょうか??
本当に初心者でどのようにしらたよいのか分かりません…。
どなたか分かりやすく教えていただけませんでしょうか??
お願いします。
No.2ベストアンサー
- 回答日時:
for i = 1 to len(text1.text)
a(i-1)=mid(text1.text),i,1)
if c="\" then cnt=cnt+1
next i
mid関数を使って1文字ずつとりだしてます。
1つずつa(i)にはいっていくはずです。
初心者ということでしたのでlen関数も説明しておきます。
len関数は文字数の数を返します。全角半角は問いません。
でアスキーコードを1ずらすには
a(i)=chr(asc(a(i))+1)
こんなんでどうでしょうか?
あとは連結させるだけです。
No.1
- 回答日時:
お疲れ様です。
下記のような例はどうでしょうか?
バイト型の配列は文字と同じように使うことが出来ます。
バイト型の配列に文字のコードを入れてコードを+1しています。
そして最後に文字型に入れています。
復号化はその逆に-1しているだけです。
例)
Private Sub Command1_Click()
Dim str As String
Dim arr() As Byte
Dim i As Long
str = "abc"
'// 暗号化
'// バイト型の配列に文字コードを代入
arr = StrConv(str, vbFromUnicode)
For i = LBound(arr) To UBound(arr)
'// コードを+1
arr(i) = arr(i) + 1
Next i
'// 文字型に戻す
str = StrConv(arr, vbUnicode)
Debug.Print str
'// 復号化
'// バイト型の配列に文字コードを代入
arr = StrConv(str, vbFromUnicode)
For i = LBound(arr) To UBound(arr)
'// コードを-1
arr(i) = arr(i) - 1
Next i
'// 文字型に戻す
str = StrConv(arr, vbUnicode)
Debug.Print str
End Sub
間違っていたらごめんなさい。
間違っていたらごめんなさいなんてとんでもないっ!
とても丁寧なプログラムを教えていただきありがとうございました!
さっそく試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VB6] SQLの作成について
-
htmlの修正方法を教えていただ...
-
円頓章を現代語訳して下さい。
-
ExcelのVBAで文章にある複数の...
-
【VBS】クリップボード操作につ...
-
枕草子の「中納言参り給ひて」の...
-
VB.NET コンボボックスからのit...
-
ReadParseで同名のinput名は配...
-
ドラゴン曲線を再帰で書く
-
他のフォームから別のフォーム...
-
レコードセットにnullの場合
-
VBA public変数はどのようなこ...
-
ボールが壁に当たって跳ね返る...
-
エクセルVBAでテキストボッ...
-
VBAでcallで呼び出したsubを終...
-
チェックボックスを操作できな...
-
C言語のサフィックスについて
-
マウスポインタの変更
-
画像処理について。(移動)
-
プロシージャまたは関数の引数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sublimit textっていうエディタ...
-
テキストボックスかラベル上の...
-
ExcelのVBAで文章にある複数の...
-
WORd VBA 文章を単語に分解する
-
Googleシート「A1」でなくて「A...
-
Pythonのre.split()の正規表現...
-
XMLファイルのattribute値がう...
-
【VBS】クリップボード操作につ...
-
[VB6] SQLの作成について
-
Pythonでのstrip()とsplit()の...
-
vba 日本語以外を抽出について
-
助けてください!
-
perlによるxmlファイルの取得
-
ReadParseで同名のinput名は配...
-
表の文字の均等割りについて
-
DTPicker テキストクリアの方法
-
VB6.0 sp5]テキストボックスと...
-
文字列を配列に…。
-
文字列を日付型情報として計算...
-
Rubyにおける正規表現(一致し...
おすすめ情報