• 締切済み

アクセス2000のVBAで変数に係数をつける方法

miya_777の回答

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

ACCESS2000なら、split関数があると思います。 Dim strData() as Sting strData = split(データ," ") これでOKです。 いくつあるかは、UBound関数で配列数をチェックしてください。

関連するQ&A

  • エクセルのマクロ(VBA)の変数でスペースを認識しません

    お世話になります。エクセルのマクロ(VBA)を組んでいてどうしても解せないことがあります。 Data1 = "9" Data2 = "               "(←スペースはとりあえず半角30文字とでもしておきます。) Data = Data1 & Data2 Range("a1").Value = Data 上記の命令を実行すると、9のあとに半角スペースが30文字分ある文字データが入力されると思うのですが、実際には9の数字データだけが入力されてしまいます。つまりスペースだけのData2という変数は無視されているみたいです。 一方、2行目を例えば Data2 = "               x" と、スペースのあとに一文字入れるとA1カラムには "9               x" と表示されます。 これはどういった現象なのでしょうか?また、スペースだけの文字列を変数として認識させるのはどうすれば良いのでしょうか? よろしくお願いします。 ※この質問を書いていて変に思いました。質問の文中にあるダブルクォーテーションの中のスペースは半角で入力すると全て無視されて""となってしまいます。全角で15文字分のスペースを入れたら入りました。この辺も同じような理由によるものでしょうか・・・

  • スペースが認識されません(エクセルVBA)

    空白文字に囲まれた文字を抜き出すマクロを製作したいのですが うまくいかず困っています。お助けください。 例えば、以下のような文字がA1セルに入力されているような場合に使用しています。 ”ab c d” f1 = Cells(i, "A") Cells(i, "A") = Mid(f1, InStr(f1, " ") + 1, InStr(InStr(f1, " ") + 1, Mid(f1, InStr(f1, " ") + 1), " ")) このマクロを動作させると、一つ目のスペースは認識されるのですが 二つ目のスペースは認識される場合とされない場合があります。 原因を調査するために以下のようなコードを上記マクロの下に追記したところ MsgBox Mid(f1, InStr(f1, " ") + 1) & " " & InStr(InStr(f1, " ") + 1, Mid(f1, InStr(f1, " ") + 1), " ") 表示は cd 0 のようになります。二つ目のスペースが認識されていないようです。 また、エクセルに数式を入力すれば、上記の式でも認識しておりますが 他の操作との関係もあって、できればVBAで処理したいのです。 データはテキストデータから取り込んでおります。 実際にはセルには漢字や仮名、数字などのデータが混在しております。 エラー回避のために試した方法としては以下の2つです。 1.文字列として変換する方法 Cells(1, "A")=Format(f1, "@") 2.スペースの全角半角をそろえる方法 (下記の文では全角を半角にしておりますが、その逆も試しました) If Cells(1 ,"A") = Cells(1 "A") Like "* *" Then Cells(1, "A") = Replace(Cells(1, "A"), " ", " ") End If どちらを行っても改善はみられませんでした。 どこに間違いがあるのか、思い当たらず苦戦しています。 よろしくお願いいたします。 (エクセル2003、VISTA)

  • 特定文字列の抽出

    VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?

  • マクロのInstr()などでスペースが半角全角不明の時は?

    InstrやRight関数で文字列変数内のスペースを取得するとき、半角全角どちらでもOKにするにはどう記述しますか? Instr(myStr," " Or " ")はエラーになります。

  • アクセス2000で文字列に文字を挿入する方法。

    InStr関数で、特定の文字(例えば、;)を探して、Mid関数を使って、その文字を特定の文字(例えば、【)に置き換えることには成功しました。 しかし、「;」を「【第」に置き換えようとすると必要なデータまで消してしまいます。「【」は置き換えでよいとしても、「第」は挿入する必要があるのですが、どのようなコードを使えばいいのでしょうか?

  • ACCESS2000で変数の扱い方について

    ある変数を用いて、テーブルの項目名の参照の仕方が知りたいのですが 具体的には。。。 ACCESS2000でAとB二つのテーブルがあります。 Aには 項目No. (オートNo.) 項目名 (文字) Bには コード  (数値) 名称   (文字) カナ   (文字) 住所1  (文字) 住所2  (文字) という構成になっています。 Aの項目名には、Bの名称以下の列名(名称、カナ、住所1,2)という レコードが入っています。 ここで、Bの文字型の項目を全て64バイト以下にするという事をやりたいのですが、 今後もBの項目は増えていくことが予想されますので、 一つづつコードを書いていくのは大変なので、以下の方法を考えました。 1.Aの1レコード目の項目名を変数Xに代入 2.B上の列名Xを1レコード目から順番に64バイト以下に変換 3.Bのレコード全て終わった段階で、変数XにAの次レコードの項目名を代入 4.Aのレコードがなくなるまで、2へ戻る Do Until A.EOF   X=A.項目名     '変数XへAの項目名を代入     Do Until B.EOF       B.Edit       B!X= LeftB(B!X,64) 'Bの列名Xの文字数を64へ変換       ~~~~~~~~~~~~~~~~~~       B.Update       B.MoveNext     LOOP   A.MoveNext LOOP というコードを書いたのですが ~~~~部分の”B!X”だとテーブルBのXに入っている列名を認識しません。 どのように記述すればいいのか、教えてください。 また、以前から参照していたACCESSの質問掲示板HPが なくなってしまい、困っています。そのようなHPをご存知でしたら 教えていただきたいです。

  • 多変数多項式の係数の求め方

    y  = a0 + a11*x1 + a12*x1^2 + a13*x1^3 + ・・・ + a21*x2 + a22*x2^2 + a23*x2^3 + ・・・      ・      ・ 上記のような多変数多項式の各係数をエクセル2007で求めようとしているのですが、 やり方がわかりません。 単変数や1次の多変数の係数は、LINEST関数や回帰解析ツールを使えば、 求められることが分かったのですが、多変数多項式の各係数はどのようにして求めるのでしょうか。 どなたかご教授いただけると助かります。

  • VBAで2変数の差分を取る方法

    txtファイルをOpenステートメントで開き、Line Inputで文字列を入れた変数Xがあります。 それよりも新しいtxtファイルを同じように取り込んだ変数Yがあります。 例えばXの中身は500行でYは503行などに増えています。 この3行を抽出するにはどうすれば良いのでしょうか。

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • アクセス2010でのファイル保存方法

    アクセス2010で、UTF8形式のテキストを開き、レコードごとにデータを 抽出する際でのご質問がございます。 指定された県の郵便番号を、レコードを抽出して、ファイルで保存する際、テキスト型文字コードUTF8に指定して保存したのですが、レコード内のフィールド文字列でスペースを含んだ半角文字14桁と全角文字8桁の混合文字列が、保存後、前半部分の半角文字のスペースがなくなってしまいます。 下記のような例がイメージとなります。 例 ァァァ           亜亜亜亜亜亜亜亜    ↓   ァァァ 亜亜亜亜亜亜亜亜  (半角領域のスペースが1桁しかなくなってしまう) のようになってしまうのですが なにか良い保存方法はありますでしょうか? どうぞよろしくお願いします。