痔になりやすい生活習慣とは?

Excle2000を使用しています。

ユーザーフォームにテキストボックスを設置してあり、MultiLineとEnterKeyBehaviorをTrueにして改行できるようにしてあります。

そこでテキストボックスに文字を入力し、コマンドボタンなどをクリックするとメッセージボックスにそのテキストボックスの行数を表示させるにはどうしたら良いでしょうか??

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

LineCount プロパティー

この回答への補足

お返事ありがとうございます。

LineCountでできましたが、そのテキストボックスにフォーカスがないと機能しないようです。

フォームの中にテキストボックスが300個程あり、その内のひとつなのでそのテキストボックスにフォーカスが合っていなくても取得する方法はありますか?

補足日時:2009/11/12 13:30
    • good
    • 0

改行の数を調べるのは?


Dim A
A = Split(TextBox.Value, vbMewLine)
Debug.Print "行数 ="; UBound(A) + 1
    • good
    • 2
この回答へのお礼

ありがとうございます。
この方法でうまくできました!
お返事遅くなってみすませんでした。

お礼日時:2009/11/28 11:06

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QエクセルVBAでテキストボックスの値の取得と変更について

エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。

環境:WindowsXPでオフィス2002
状況:
エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C)
エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい

試した事:
コントロールを配置したシートに次のマクロ
TEXTBOX_C.Text = "これはコントロールのテキストボックス"
を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。

また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

Aベストアンサー

エクセルを新規に開きました。
そのSheet1に(コントロールツールボックスの)TextBoxを貼りつけました。
そのBook1から、ファイル-開くで別ブックを開きました。
別ブックのMojule1側に下記を書いて
Sub test02()
MsgBox Workbooks("book1").Worksheets("sheet1").textbox1.Text
End Sub
を実行すると、Book1のTextBoxに入れた文字列が表示
されました。
がそんな質問ではないのですか。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

Qテキストボックスに改行を含む値を表示する場合

テキストファイルより1行ずつ値を改行「chr(13)」でつなげて取得し、それを
テキストボックスに表示させたいのですが、そのまま値をテキストボックスの
textプロパティに設定すると、改行が「・」で表示され改行されていません。
テキストボックスのプロパティでMultiLineもTrueにしてあるのですが、これは
無理なことなのでしょうか?
一行ずつ取得してテキストボックスに表示する際に改行を設定していくしかない
のでしょうか?
詳しい方いらっしゃいましたらご教示ください。
よろしくお願いいたします。

Aベストアンサー

お疲れ様です。

では、これでどうですか?

例)

  Dim strText As String

  '// 元の文字
  strText = "AAA" & Chr(13) & "BBB"

  '// Cr を CrLf に変換
  '// Text1.Text = Replace(strText, Chr(13), Chr(13) & Chr(10)) と同じ意味
  Text1.Text = Replace(strText, vbCr, vbCrLf)


strText をファイルから読み込んだものとして考えるといいと思います。
お試しください。

間違っていたらごめんなさい。

Qテキストボックスのカーソル位置の取得・設定方法

VisualBasic Ver.6 SP5 を使用しています。
質問タイトルのとおり、テキストボックスコントロールのカーソル位置を取得したり、設定したりすることは可能でしょうか?

調べてもわかりませんでした。
どなたかご教授ください。
よろしくお願い申し上げます。

Aベストアンサー

テキストボックスのSelStartプロパティで取得/設定できます。

設定する場合は、SelStartの前後どちらかでSetFocusを実行してください。
ex)3文字目と4文字目の間にカーソルを設定
Text1.SelStart = 3
Text1.SetFocus

Qエクセル VBA ユーザーフォームを閉じる

ユーザーフォームを開く時は
UserForm1.Showですが
閉じる時は?
UserForm1.Close
だとコンパイルエラーになります。
End
にするしかないですか?

Aベストアンサー

Unload Me とか Unload UserForm1 でユーザーフォームを閉じることができます。

Qテキストボックの文字を一行ずつ読み込む

こんにちは。
VB6.0にてフォーム上のテキストボックスの文字列を1行ずつ読み込んで処理し、別のテキストボックに書き出したいのですが、1行ずつ読む方法が分かりません。(テキストファイルなら出来るのですが)

何方か方法をご存知ないでしょうか。
宜しくお願いします。

Aベストアンサー

ちょっと、致命的なミスをしていましたので訂正します。

Private Sub Command1_Click()
  Dim I    As Integer
  Dim strText As String
  Dim strTexts(1) As String
  
  Me.Text1(1).Text = ""
  If Len(Me.Text1(0).Text & "") > 0 Then
    strTexts(0) = Me.Text1(0).Text
    Do
      I = I + 1
      strText = CutStr(strTexts(0), vbCrLf, I)
      If strText <> "" Then
        strTexts(1) = strTexts(1) & strText & vbCrLf
      End If
    Loop Until strText = ""
    Me.Text1(1).Text = Left(strTexts(1), Len(strTexts(1)) - 1)
  End If
End Sub

フォームのテキストボックスからの読み込みと書き込みは最小ステップにするべきでした。

ちょっと、致命的なミスをしていましたので訂正します。

Private Sub Command1_Click()
  Dim I    As Integer
  Dim strText As String
  Dim strTexts(1) As String
  
  Me.Text1(1).Text = ""
  If Len(Me.Text1(0).Text & "") > 0 Then
    strTexts(0) = Me.Text1(0).Text
    Do
      I = I + 1
      strText = CutStr(strTexts(0), vbCrLf, I)
      If strText <> "" Then
        strTexts(1) = strTexts(1) & strText & vbCrLf
 ...続きを読む

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

QエクセルVBAのテキストボックスの改行

エクセルVBAのテキストボックスで
自分好きなところで改行したいのですが、
どうすれば良いのでしょうか?
例えば、全角5文字以上表示出来る幅が有っても、
あいう
えお
というように、「う」で改行したいです。

Aベストアンサー

#1、2、cjです。#1お礼欄へのレスです。

デザインモード、プロパティページから
初期値を設定するという条件ならば、
確かに、Ctrl+Enterでは改行を設定出来ません。
(何れにしても.MultiLine = Trueは必須ですが)
#私がお応えしたのは実行時、入力作業時の改行方法です。
デザインモード、プロパティページで
改行を指定するショートカットキーは、私は知りませんし、
T.P.O.的には用意されていなくても不思議ではないですよね。
プロパティページでなければならない必要性については
こちらでは判りませんので置いておくとすると、
改行文字をコピーしておいてCtrl+Vで改行するぐらいしか
私には思い当りません。
 もし、シート上に配置したActiveXコントロールのテキストボックス、ならば、
  編集状態にしてからCtrl+Enterで入力すれば、値は保持されます。
 もし、ユーザーフォームのテキストボックス、ならば、
  _Initialize イベントで初期値を設定することも出来ます。(#2参照)
後は、どんな事情があるのか、によりますけれど、
私からお応えできるのはとりあえず以上です。

#1、2、cjです。#1お礼欄へのレスです。

デザインモード、プロパティページから
初期値を設定するという条件ならば、
確かに、Ctrl+Enterでは改行を設定出来ません。
(何れにしても.MultiLine = Trueは必須ですが)
#私がお応えしたのは実行時、入力作業時の改行方法です。
デザインモード、プロパティページで
改行を指定するショートカットキーは、私は知りませんし、
T.P.O.的には用意されていなくても不思議ではないですよね。
プロパティページでなければならない必要性については
こちらでは判り...続きを読む

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング