• 締切済み

1バイトごとに抽出する

VB5でデータを添え字を使って1バイトごとに抽出するプログラムを書きました。(For i = 1 To 128 Get #1,,Bwk(i) Next i) ←このプログラムをVBAで使いたいのですが、VB5と同じでいいですか?あと、これで1バイトごとに抽出できているでしょうか?

みんなの回答

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 基本的にVBとVBAは文法は同じだと思っていいと思います。 この程度のコードならば、質問するより試して見るなりヘルプをひくなり したほうが早くはないですか? エラーを自分自身で解決する(出来るだけ!)ことがスキルアップに つながりますよ。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

Open も Get も VBA でステートメントとして使えます。 > これで1バイトごとに抽出できているでしょうか? VBのコードをVBAに持ってこようとしているようだけど、 元のコードが信頼できるのかどうか分からないので、 「できるかどうか」までは、保証できません (^^; でも、この程度だったら VBA のヘルプを引いた方が早いと 思うんだけど、Excel を持ってないんですか?

関連するQ&A

  • またまたバイナリ→テクスト

    VBは5で、Excle2000のVBAでやってます。バイナリデータ→テクストデータに 128バイナリデータを添え字を使って1バイトごとに抽出DATA_PS = DATA_PS & 変換関数 というふたつの部分のリファレンスが正しくかけなくて 困ってます。Getを使って1バイトづつとりだして、Hexを使って変換するというものだそうです。 誰か教えてください。

  • 配列入れ替えの効率的方法は

    VBでグローバル変数配列を3000とっています。 格納されているデータを、1つづつずらして代入し直しをやりたいのですが 配列添え字1のデータを配列添え字0にというふうに3000回のループで 処理する以外に良い方法はないでしょうか 例 for i=0 to 2999 a[i]=a[i+1]

  • フィールド名をループの添え字として使いたい

    当方、AccessのVBAなんですがVBでも同じと思い質問します。 フォームに3つのフィールドがあって、それぞれ 1,2,3というフィールド名がついてます。 これをループの添え字に使いたいと思います。つまり For i = 1 To 3 Hairetsu(i) = me!???? Next としたいのですが、??部分をどう書いたらいいか分かりません。 Me(i),Me[i]などを試してみましたがダメでした。 どう書けばいいでしょうか?よろしくお願いします。

  • For next使う場合、next iはできない?

    vbsでFor next使う場合、next iはできないのですか? for i = 1 to 2 msgbox "" next i をすると "ステートメントの末尾が不正です"800A401 になります。 しかし for i = 1 to 2 msgbox "" next にすると、問題ないです。 VBAではnext iでも実行できるけどVBSではだめなのでしょうか? 理由を教えてください。

  • 抽出データの欠落

    プログラムもほとんど知らない素人ですが質問させていただきます。^^; oracle9iデータベースで、未抽出の情報があれば、「抽出済みフラグ」を立て、さらにその情報はテキストファイルに出力する処理を開発者に作ってもらいました。 しかし、データの10件に抽出済みフラグが付いたのに、テキストファイルへの出力は8件とか9件しか出力されない といった現象が頻発して困っています。 当初はSQL文のみのプログラム(?)で現象が出たのでVBプログラムで作り直してもらったのですが、同じ現象が出ます。 データ総件数は3万件ぐらいで、抽出される件数は20~100件ぐらいです。 こういったトラブルはoracleデータベースで一般的にあり得るのでしょうか? よろしくお願いします。

  • GetOpenFilenameを使用し、複数行のデータを抽出について

    エクセルVBA初心者です。 いろいろ調べましたが、うまくいかずご教授頂ければとお聞きします。 よろしくお願いします。 テキストファイル10万行からなるデータが入っています。 「aaa」と文字列を検索し、その下10行を抽出したいのです。 Sub 抽出() fname = Application.GetOpenFilename(FileFilter:="(*.*),[*.*]", Title:="data?", MultiSelect:=False) if fname For Input As #1 Do Line input as #1 If InStr(data, "aaa") > 0 Then For i = 1 To 10 Cells(i, 1).Value = data Next End If Loop Until EOF(1) Close #1 End Sub

  • basicプログラムです。

    100 DIM A(5) 110 FOR J=1 TO 5 120 READ A(J)   130 NEXT J   140 FOR I=1 TO 4  150 LET K=I    160 FOR J=I+1 TO 5  170 IF A(J)<A(K) THEN LET k=J  180 NEXT J    190 LET T=A(I)    200 LET A(I)=A(K)   210 LET A(K)=T    220 FOR J=1 TO 5   230 PRINT A(J);   240 NEXT J     250 PRINT      260 NEXT I     270 DATA 5,3,7,2,1,  280 END このようなプログラムがあります。 いろいろ調べたのですがそれぞれの文の意味と 何を求めるプログラムか教えて下さい。 5つの数の組み合わせで小さい数から順番に4個 かなと思ったのですが???

  • VBAのfor...next構文で i = A to Z としたい。

    VBAでfor...next構文で通常  for i = 1 to 100 などとしますが、それをA~Zまでとする場合どのようにすればよいでしょうか?

  • 複数レコードを横並び1レコードで抽出する方法

    ORACLE10gを使用しています。 似た内容の質問があったので QNo.1828920:検索対象のデータが「複数レコード」を「1レコード」として獲得するSQL も見てみたのですが、実際には他にも抽出条件や抽出項目が多いので、 できればGROUP BYは使いたくないと思い、質問させていただきます。 ・TABLE)イメージ CD|NO|NM 10 | 0 | あ 10 | 1 | い 10 | 2 | う 10 | 3 | え ・前提 画面でCD:10およびNO:0~NO:2と範囲指定します。 ・求める結果 下記のように範囲指定したNO分、NMを横並びに抽出したいです。 10,あ,い,う ・考えた内容 VBを使用しているのでプログラム中で動的に抽出項目、FROM句、WHERE句を 追加しようと考えました。 TABLE.NOは2桁なので最大指定で0~99になる可能性があります。その場合FROM句のTABLE別名が99個に なってしまいますが、書き方として問題ないのか不安です。 何かアドバイスがありましたらお願いします。 ・SQL案 SELECT TABLE0.CD, For I = 0 To 2 TABLE & I.NM AS NM & I, Next K FROM For J = 0 To 2 TABLE TABLE & I, Next K WHERE TABLE0.CD = 10 AND For K = 0 To 2 TABLE & K.NO = K AND Next K

  • このプログラムで計算を実行すると・・・

    10:S=0 20:FOR I=0 TO 6 STEP 2 30:FOR L=0 TO I 40:S=S+L 50:NEXT I 60:NEXT L 70:PRINT S 80:END 90: このプログラムを実行すると、「34」とプログラムの計算結果が表示されるのですが、実際に自分で計算すると「22」になってしまいます。 どこが違うのとか・・・基本的なとこが間違ってるのか? あとプログラムの動きを解説して頂けるとうれしいです! それでは、お願い致します。

専門家に質問してみよう