Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32805 / 76734 ←次へ | 前へ→

【49162】配列について教えてください
質問    - 07/5/25(金) 17:37 -

引用なし
パスワード
   初心者です。配列変数を勉強しようとしたら、最初からつまづいてしまいました。
どなたか、配列につてご教授願います。

『やりたいこと』
句読点の入っている文章の、句読点間の文字数を取得する。

『教えてほしいこと』
下記コードで(A)(B)のMegboxで確認したところ、正しい値を取得していましたが、1.〜2.の文字数の計算値がうまくいきません。
どうも配列への値の格納方法が間違っているようなんですが、どうしたらいいのか分かりません。

(下記文章でテストしました)
東京、埼玉は雨。神奈川は曇り、山間部では

Option Explicit
Option Base 1

Sub 句読点()

Dim i As Integer, j As Integer
Dim k As String, 句読点 As Integer
Dim 文章 As Integer, 文字数() As Integer


文章 = Len(ActiveCell)

For j = 1 To 文章
  k = Mid(ActiveCell, j, 1)
  If k = "、" Or k = "。" Then
  句読点 = 句読点 + 1
  
  ReDim 文字数(句読点) As Integer
  
  文字数(句読点) = j
   
 ' MsgBox 句読点      ' (A)確認用・・句読点の個数
 ' MsgBox 文字数(句読点)   '(B)確認用・・文頭から句読点までの文字数
  End If
  
Next

' (C)再確認位置

MsgBox 文字数(1) - 1       '1.文頭から最初の句読点までの文字数・・・NG

For i = 2 To 句読点
MsgBox 文字数(i) - 文字数(i - 1) - 1 '2.句読点間の文字数・・・NG
Next

MsgBox 文章 - 文字数(句読点)   '3.最後の句読点から文末までの文字数・・・OK
                     '文字数(i)にしたらNG
End Sub

『結果と原因究明』
(A)と(B)で句読点の個数と、その位置が文頭から何文字目かを確認したところ
文字数(1)は3
文字数(2)は8
文字数(3)は15
で、正しい値を取得していました。

ところが、1.の計算結果は「−1」で、私が想定した「3−1=2」という結果が
得られません。2.も同じでした。そこで(C)の位置に

For i = 1 To 句読点
MsgBox 文字数(i)
Next

を入れて、文字数(i)の内容を確認したところ
結果は 0、0、15 で
想定した 3、8、15 は得られませんでした。
最初は、(A)(B)の値が正常だったので、配列からの値の取り出し方が間違っているのかと思ったんですが、
そもそも正しい値が配列に格納されていないことが分かりました。
ただ、これをどう修正したらいいのか、よく分かりません。
どなたか、ご教授願います。
3 hits

【49162】配列について教えてください 07/5/25(金) 17:37 質問
【49166】Re:配列について教えてください りん 07/5/25(金) 18:40 回答
【49167】Re:配列について教えてください 07/5/25(金) 19:31 お礼

32805 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free