エクセルVBAで、テキストボックスにセルの値を入れる(1)の 回答13で
>うまくいったとしてもデータの書込みとテキストボックスの更新が同期がとれない時がある という部分で
これは、どういった理由で同期がとれなくなるのでしょうか? それとその場合の対処法を教えてください。

前回URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=79173

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

A 回答 (1件)

回答13を書いているときに、実行していてうまくいっているはずなのに、テキストボックスの数値が更新されない状態になり、いろいろ調べて、Tensouの中にDoEventsを2箇所入れています。

それ以降は正常に更新されています。(私のPCでは)

個人的な経験ですが、たまにこの事象にぶつかります。シートやユーザーフォームにオプションボタンやテキストボックスを配し、シートに関連付けると同期がとれない場合があるようです。作りがまずいのかもしれませんが。
特にオプションボタンについては、ボタンの変更がセルに反映しなかったり、セルの値がオプションボタンに反映しないケースがあり、関連付けを止めて直接値をセットしたりしています。マイクロソフトのサポートにも似たような事例がありましたが原因はよく分かりませんでした。専門家にも聞いてみて、関連付けよりVABで直接値を代入する方式にしています。
今回の場合はDoEventsをいれて、正常に更新されるようになりました。
    • good
    • 0
この回答へのお礼

ありがとうございます。心配要らないってことですね!

お礼日時:2001/06/05 21:35

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

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

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

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

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

QWordのテキストボックスの行間をつめたいのです

Wordのテキストボックスの行間をつめたいのです。

他者からもらった印刷物がありますが、
文字の高さが3.3mmで行間が3.6mm程度です。
Wordでやろうとしていますがなかなかできません。
テキストボックスの中に文字を入れればテキストボックスの上との行間が縮まりますが
テクストボックス内の行間が縮まりません。
どうしたらできますか?

Aベストアンサー

こんばんは!
↓の画像でテキストボックス内の行間を12ptでやってみました。
当方使用のWord2003の場合です。

左側のテキストボックスはデフォルト(ページ設定)の1行の行間そのままです。

(1)テキストボックス内の文字を範囲指定 → メニュー → 書式 → 段落
(2)「インデントと行間隔」タブ → 間隔の「行間」の下向き▼を選択 → 「固定値」を選択(自動で12ptになると思います)
このポイント数で好みの行間に設定できます。

※ 行間とは文字の上端~次の行の文字の上端までですので、行ピッチと言った方が判りやすいかもしれません。

すなわち、フォントサイズよりも小さいpt数を設定してしまうと文字が重なってしまいます。

以上、参考になれば良いのですが
的外れならごめんなさいね。m(_ _)m

QExcel : テキストボックス中のテキストの検索・置換

Excelの図として貼り付けたテキストボックスにテキストが入力されていて、そのテキストボックスが数十個、シートに貼り付けられています。またそれが30シートくらいあります。

このたくさんのテキストボックスに入力されたテキストを複数のシートに渡って一括置換する方法はありませんでしょうか。

Aベストアンサー

こんばんは。Wendy02です。

ちょっとお話に興味があって、あえて修正版を作りました。

しょせん、Undoの仕組みというのは、どこかにバッファを置いているだけだと思うのです。私は、この手のものは、時々、Undoに代わるものを作ります。前のは、手抜きでしたから、今度は、もう少し手の込んだものを作りました。

通常は、VBAプロシージャで、すべてのUndoを考えていたら、VBA側に与えられているメモリは小さいので、それを食いつぶしてしまう可能性があります。

以下は、配列変数の一こまに、どの程度の許容量があるのか知りませんが、許容量を増やすなら、以下は、Logs の型をString 型すれば広がります。しかし、Null値を入れるために、Variant 型にしてあります。

String型の場合は、その代わりに、Chr(0)を入れればよいのですが。Null値のほうが簡単なのど、それを用いました。

'---------------------------------------------------------
'Option Explicit
Private Logs(100) As Variant

Sub ReplaceInTextBoxesR()
Dim shp As Object
Dim i As Integer
Const BEF As String = "あいうえお" '検索後
Const AFT As String = "ABCDE" '置換語

Const TX As Integer = vbTextCompare '全半角区別なし
Const BIN As Integer = vbBinaryCompare '全半角区別あり

 For Each shp In ActiveSheet.Shapes
 If shp.Type = msoTextBox Then
  Logs(i) = shp.DrawingObject.Text
  shp.DrawingObject.Text = _
  Replace(shp.DrawingObject.Text, BEF, AFT, , TX)  '全角半角区別なし
  i = i + 1
 End If
 Next
 Logs(i) = Null
 If MsgBox("これでよろしいですか?", vbQuestion + vbOKCancel) = vbCancel Then
  Call UndoLogs
 End If
End Sub

Private Sub UndoLogs()
'一回きり、戻せます。
Dim shp As Variant
Dim i As Integer
 For Each shp In ActiveSheet.Shapes
 If shp.Type = msoTextBox Then
  If IsNull(Logs(i)) Or IsEmpty(Logs(0)) Then Exit For
  shp.DrawingObject.Text = Logs(i)
  i = i + 1
 End If
 Next
Erase Logs
End Sub

こんばんは。Wendy02です。

ちょっとお話に興味があって、あえて修正版を作りました。

しょせん、Undoの仕組みというのは、どこかにバッファを置いているだけだと思うのです。私は、この手のものは、時々、Undoに代わるものを作ります。前のは、手抜きでしたから、今度は、もう少し手の込んだものを作りました。

通常は、VBAプロシージャで、すべてのUndoを考えていたら、VBA側に与えられているメモリは小さいので、それを食いつぶしてしまう可能性があります。

以下は、配列変数の一こまに、どの程度...続きを読む

Qエクセル2002/テキストボックス内の文章の行間?

エクセル2002です。
テキストボックス内に書いた文章の行間を任意に変えることが可能ですか?

普通に書くとくっつきつぎで、一行あけると開きすぎなので、一行の半分くらいの行間にしたいのです。
テキストボックスの書式設定は見てみましたが、方法を見つけられませんでした。

Aベストアンサー

あまり良い方法と言えないかもしれませんが。

テキストボックス内に文字を入力します。
そしてテキストボックスの書式設定を出して、配置のタブを開きます。
文字の配置の縦位置を「均等割付」に設定します。
これでテキストボックスの縦の高さに合わせて、行間が広がります。
ちょうど良い行間にテキストボックスの高さを調節します。

QWORD2002:コントロールツールボックスのテキストボックス

WORD2002でアンケートフォームを作成中です。

コントロール・ツールボックスでテキストボックスを作りました。広めにしてスクロールバーもつけ、たくさん入力できるようにしているのですが、ロック後、テキストボックス内の入力文章に任意で改行が入れられないのが気になります。これをなんとかする方法はないでしょうか?

フォームで作ると回答者が任意で改行を入れられる点は良いのですが、入力文字に網掛けがかかってしまうのがデザイン上、気になります。かといって網掛けをオフにすると、入力位置が分かりにくくなってしまいます。※入力範囲は表のセルで表示しましたが、セル内のフォームフィールド以外の場所をクリックしても入力できないため、慣れない回答者には入力しづらそうです。

解決方法のアドバイスをどうぞよろしくお願いします!

Aベストアンサー

テキストボックスをエディットモードにして(ツールバーの三角定規と鉛筆のアイコンをクリックして凹まして)、その中で右クリックすると、「プロパティ」の選択肢がありますからクリック。プロパティのボックスが出て来て右列に「MultiLine」プロパティがありますから、その行の右列をクリックすると、TRUEが出てくるからクリック。Xでウインドウを閉じる。
そしてテキストボックス内で、CTRLを押しながら、ENTERを押すと改行できました。
ただCTRL+ENTERは回答者にどうかなと言う気がしますが。
こんなことで良いでしょうか。

Qパワポのテキストボックスの行間のデフォルト値の設定

パワポ2000を使っています。
テキストボックスを作ると必ず行間が9.99行となっているので、毎回1行に変更しています。作った時点に1行になるように、変更する方法がわかりません。
つまり、パワポのテキストボックスの行間のデフォルトを、現在の9.99行から1行に変更したらよいのですが、変更する方法がわかりません。

Aベストアンサー

行間を1行にしたテキストボックスを選択し、右クリックで「オートシェープの規定値」選択すると次からのテキストボックスは開業行になりませんか?

Q【エクセル】テキストボックスのサイズを他のテキストボックスにもコピーできますか?

こんにちは、みなさん!!

AとういうテキストボックスのサイズをBとういう
テキストボックスのサイズにコピーできますか?

例えば、テキストボックスAの幅が3高さが1だとします。
テキストボックスBのサイズをAと同じにするには、書式
設定から、高さ幅3高さ1と入力して同じサイズのテキスト
ボックスにします。

これを、もう少し簡単にできる方法はありませんか?

ご存知の方いらっしゃいましたらよろしくお願いします。

Aベストアンサー

すでにあるテキストボックスなら、
Shiftを押しながら選択すると、
A、Bのテキストボックスを同時に選択することができます。
複数同時に選択したところで、書式設定すればいいと思います。

Qテキストボックス内の行間の変え方

Microsoft Wordでテキストボックス内の行間を変えるにはどうしたらよいですか。
文字サイズを大きくすると、伴って行間も広くなってしまうのですが、行間だけを指定することができるでしょうか。教えて下さい。

Aベストアンサー

テキストボックス内のテキストを選択して右クリック
「段落」を選択してください。
行間の変更ができます。

QWORD2002:テキスト・ボックス・フォーム・フィールドの幅を広くしたい

WORD2002でアンケート・フォームを作成しています。

テキスト・ボックス・フォーム・フィールドを挿入すると、2~3文字分の幅のフィールドが表示されます。このフィールドの幅を、それぞれ5文字分にしたり、20文字分にしたり、と幅を変えるにはどうすればいいのでしょうか?

どのフィールドも最長文字数は指定せず、好きなだけ書けるようにしていますが、「だいたいこれくらい書いてほしい」という目安のような感じにしたいのです。

フィールド内にスペースを入れるやり方ではうまくいきません。マイクロソフト配布のWebテンプレートで色んな幅のフィールドを見たことがありますので幅を変えること自体は可能だと思うのですが、やり方がわからなくて困っています。

ご存知のかた、ご回答をどうぞよろしくお願いします!

Aベストアンサー

#1,4です。
私が質問の意図を誤解してたかな?

Word のフォームにもチェックボックスはありますが・・・(文書をロックしないとテストできないけど)

HTMLとして保存してユーザーに記入してもらい、メール等で受け取りたいのでしょうか?
WordでHTMLの作成はした事がないけど・・・

オプションボタンを使用して「はい」「いいえ」の選択をしたいなら、

オプションボタン1とオプションボタン2を配置する。
オプションボタン1のプロパティで、
Captionを「はい」
GroupNameを適当なもの例えば「Q1」とタイプする。

オプションボタン2のプロパティで、
Captionを「いいえ」
GroupNameを適当なもの例えば「Q1」とタイプする。
「はい」と「いいえ」で一つの同じグループ名にします。

チェックボタンも同様にCaptionとGroupName指定すれば出来ると思います。

QPPTのVBA 全てのテキストボックスの行間を最小

【PPTのVBA 全てのテキストボックスの行間を最小に】

 今晩は、質問させていただきます。どうぞよろしくお願いいたします。
PPT2007でございます。

 手元に大量にあるPPTファイル群のテキストボックスの行間が全て広いため、
全て一括で小さくしてしまいたい次第でございます。
もしこれを手作業でやりますと、テキストボックスをアクティブにする→右クリック
→「段落」→「段落前」を0に。
となり時間がかかりますため、VBAでどうにかしたい次第でございます。

 しかしネットで検索しても出てこず、
また上記操作を自動記録しようといたしましても記入されません。
(PPT2007には自動記録が無いため、excel、wordでトライいたしましたが、無理でございました。。。)

一個のテキストボックスの操作方法さえ分かれば後は、
For each スライド
  For each テキストボックス
  :
  :
  Next
Next
みたいな感じで出来ると思うのでございますが。。

 もしお詳しい方がいらっしゃいましたら,お教えいただけないでしょうか。
どうぞよろしくお願いいたします。

【PPTのVBA 全てのテキストボックスの行間を最小に】

 今晩は、質問させていただきます。どうぞよろしくお願いいたします。
PPT2007でございます。

 手元に大量にあるPPTファイル群のテキストボックスの行間が全て広いため、
全て一括で小さくしてしまいたい次第でございます。
もしこれを手作業でやりますと、テキストボックスをアクティブにする→右クリック
→「段落」→「段落前」を0に。
となり時間がかかりますため、VBAでどうにかしたい次第でございます。

 しかしネットで検索しても出てこず、
また...続きを読む

Aベストアンサー

MKT_さん
こんにちは。

下記のコードでできると思います。
※PPT2003での対応ですが…

Sub 行間変更()
 Dim I  As Long
 Dim J  As Long
 For I = 1 To ActivePresentation.Slides.Count
  With ActivePresentation.Slides(I)
   For J = 1 To .Shapes.Count
    If .Shapes(J).HasTextFrame = msoTrue Then
     .Shapes(J).TextFrame.TextRange.ParagraphFormat.SpaceBefore = 0
    End If
   Next J
  End With
 Next I
End Sub

Qコンボボックスからテキストボックスに連続して値を出したい

エクセルVBAのユーザーフォームで、コンボボックスで選択したものをコマンドボタンを押すことで、同じフォーム上のテキストボックスに表示するところまではできたのですが、同じテキストボックスに追記する形でコンボボックスで選択したものを表示したいのですが、可能でしょうか。テキストボックスは複数行表示できるようにプロパティのMultiLineはTlueに設定することはしたのですが、2回目以降コンボボックスで選択した後コマンドボタンを押してもそのまま上書きするようなコードしかわかりません。
テキストボックスに、20回目まで選択項目を追加表示し、最後にはエクセルのシートにそのデータをコピーしたいのです。果たして、そのようなことは可能でしょうか。可能であればどのように記述すればよいのでしょうか。ぜひ諸先輩方のお知恵をお貸しください。よろしくお願いします。

Aベストアンサー

テキストボックスの場合、改行コードも文字としてあつかっているので、区切りを自分で探す必要があります。
リストボックスだとlstBox.Items(i)のように1行ずつを簡単に抜き出すことができます。

エクセルのセルに順にセットするには
for i = 1 to 20
ActiveWorksheet.Range(1,i).Value = lstBox.Items(i)
next
のようになります。

20回までの制限はlstBox.Items.Countで登録済みのデータの数を確認できますので、IF文で判断すればできます。


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

人気Q&Aランキング

おすすめ情報