3つ聞きたいです。

ユーザーフォームのテキストボックスに記入した内容を
最終行を取得して、指定の列にコメントを入力させるためには
どうするのがいいでしょうか。下記で、エラーが出てしまいます。
.cells(lrow + 1, "c").addcomment = textbox5.value

それと、一つのテキストボックスの内容を複数の
セルへ記入させるには、下記をどうすればいいですか。
.cells(lrow + 1, "X:Z").value = textbox6.value

あと、ショートカットキーで(例えば、CTRL + Q)
ユーザーフォームを起動させるにはどうすればよいですか。
するとしたら、そのコードはどこに表示させるのがいいでしょうか。

いろいろ、お願いですが教示お願いします。

A 回答 (2件)

質問者は難しいことを聞いている。

処理の流れによっての難しさがはっきり意識されていないと思う。
Userform1にテキストボックス、コマンドボタンを1つ貼り付け
ユーザーフォームの実行
テキストボックスに文字列を入れる
ボタンをクリック
(ここまで質問に書くこと)
でシートにコメント設定(A列の最終行の例)
Private Sub CommandButton1_Click()
t = UserForm1.TextBox1.Text
MsgBox t
d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
With Worksheets("Sheet1")
.Range("A" & d + 1).AddComment
.Range("A" & d + 1).Comment.Text Text:=t

End With
End Sub
ーー
複数のセルに値代入するなんてどこが疑問か、3セルなら3行書いたら仕舞いでは。
Private Sub CommandButton1_Click()
t = UserForm1.TextBox1.Text
MsgBox t
Worksheets("Sheet1").Cells(3, "B") = t
Worksheets("Sheet1").Cells(5, "C") = t
Worksheets("Sheet1").Cells(10, "A") = t
End Sub
ーー
ショートカットキーの設定はマクロの記録にある。
マクロの記録を、操作は何でもよい簡単なものから取り、そのときショートカットの登録を、「マクロの記録」ダイアロウグの画面で行い、コードの主要な中身を消して、
(もちろん標準モジュールの1つにに記録される)
UserForm1.Show
に置き換えた。
Sub Macro1()
'
' Macro1 Macro

' Keyboard Shortcut: Ctrl+Shift+Q
UserForm1.Show
End Sub
===
質問はなるべく1テーマずつに分けてほしい。
VBAのやや前に進んだ状態と思うが、疑問が噴出するだろう2,3では収まらないはず。だから解説書や特にWEBで照会(検索語の工夫が肝心)し、自分の疑問にWEB記事を修正する術を身につけてほしい
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
すっきりできました。

わけようと思ってましたが、わけてしまって逆に大変かと思って
まとめしまいました。
申し訳ありません。
また、質問の仕方に関しても不適切で申し訳ありません。

ただ、解説書やWEB検索でも、行き詰ったためにこの場で
質問いたしました、私はそういうためにこの掲示板が
あると思って利用しております。
経験や知識がなければ修正も何もならないと思います。

お礼日時:2009/05/13 18:09

>それと、一つのテキストボックスの内容を複数の


>セルへ記入させるには、下記をどうすればいいですか。
>.cells(lrow + 1, "X:Z").value = textbox6.value

Resizeするとか。
.Cells(lrow + 1,"X").Resize( ,3).Value = textbox6.Text
    • good
    • 0
この回答へのお礼

回答ありがとうごじざいます。
imogashiさんので解決しました。

お礼日時:2009/06/05 18:57

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

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

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

Qローマ字入力が安定してできない

とにかくローマ字入力ができたりできなかった理で困っています。プロパティからローマ字入牢を選んでやるとしばらくはできるのですが、突然できなくなるのです。半角からローマ字入力ができるようになっても同じ用に突然できなくなります。Vistaなのでもう終わりにしようかとも追うのですが、もったいない気もするので直す方法があれば教えてください。

Aベストアンサー

> とにかくローマ字入力ができたりできなかった理で困っています。

Vistaをお使いとのことですので、もしかしたら、MS-IME 2007をお使いでしょうか?

他の原因かも知れませんが、念のため、下記URLのページをご覧になって、MS-IME 2010をインストールしてみてください。(無料です。)

「Microsoft Office IME 2010」
https://www.microsoft.com/ja-jp/office/2010/ime/default.aspx

Q「Cell( n , "A" )よりも10上のセルに1 or 2 が記入されていなければ、Cell( n , "A" )に1を記入する」

「Cell( n , "A" )よりも10上のセルに1 or 2 が記入されていなければ、Cell( n , "A" )に1を記入する」
というコードを作ってみましたが、メチャクチャな動きになってしまいます(動きが読めません)。
どこが間違っているのか教えてください。
また、もし、よりわかりやすいコードがありましたら教えていただけると嬉しいです。
よろしくお願いいたします。

Sub Cell( n , "A" )に1を記入する()

Dim n As Long
Dim m As Long
Dim s As Long

'現在のセル( n , "A" )より14行上に数値がないことを確認するために
'14行上のセルを全て足し算しています。
For m = n - 14 To n - 1
s = s + Worksheets("Sheet1").Cells(m, "A").Value
Next

'足し算結果がゼロならば何も記入していないと判断し、
'数字の「1」を記入します。
If s >= 1 Then
Worksheets("Sheet1").Cells(n - 1, "A").Value = 0
ElseIf s = 0 Then
Worksheets("Sheet1").Cells(n - 1, "A").Value = 1
End If
End Sub

「Cell( n , "A" )よりも10上のセルに1 or 2 が記入されていなければ、Cell( n , "A" )に1を記入する」
というコードを作ってみましたが、メチャクチャな動きになってしまいます(動きが読めません)。
どこが間違っているのか教えてください。
また、もし、よりわかりやすいコードがありましたら教えていただけると嬉しいです。
よろしくお願いいたします。

Sub Cell( n , "A" )に1を記入する()

Dim n As Long
Dim m As Long
Dim s As Long

'現...続きを読む

Aベストアンサー

はいはい了解。

今着目しているセルが (n,1)であるとする。

条件: 今いるところから上に14行サーチして、一度でも1か2の値が見つかったら
     回答を0とする。14行すべてに1・2の値がひとつも含まれていなければ1とする。



Ans = 1

for i = 1 to 14

x = cells ( n - i , 1 ).value

if x = 1 or x = 2
then
Ans = 0
endif
next i


cells ( n , 1 ) = Ans


デフォルトの回答値=1としておき、一回でも条件にヒットしたら回答値=0にする。
ヒットしたらfor~nextを強制的に閉じてもいいけど、面倒なのでそのまま14回検索する。

Qローマ字しか入力できない(再)

何度も申し訳ありません。
平仮名で入力できません。すべてローマ字になってしまいましす。

Wordなどでは普通に平仮名で入力できるのにインターネット検索などで入力する時だけ
ローマ字でしか入力できません。

言語バーの左に[あ]となってるのにローマ字しか出ません。
バーの右に出てるCAPSやKANAが関係あるのでしょうか?

今までの質問を参考にしてIMEスタンダードのプロパティから[ローマ字入力]にもしました。
{というか最初からなってたのですが}

http://oshiete1.goo.ne.jp/kotaeru.php3?q=246469も参考にしましたが何かをダウンロードした直後になった訳ではないのでどうなんでしょう?この質問者様の場合、アドレスバーの下にボタンが出たりしてるそうですがそんなことはとくにありません。



ほんとに困ってます。よろしくお願いします

Aベストアンサー

用語を次のように変更されたほうが誤解を招かずにすみます。
 「ローマ字」→「直接入力」(または「英数字」)
 「平仮名」→日本語
日本語変換入力の方式として「ローマ字入力」と「かな入力」の二つがあります。

ATOKでお尋ねの状況が発生したのを見聞きすることはありませんが、MS IMEはもともとIEとの相性が悪いのか、下記のようなことがあり、
OS再起動のほか特効薬はないのかも知れません。
http://support.microsoft.com/kb/413643/ja
IE7はIE6よりもこの問題が起こりやすいようにも聞いています。
Office IME 2007もなにかと不具合が起こりやすいようですが…。

[KANA]や[CAPS]は関係ありませんが、クリックしたために周りと違った色になっていたら、もう一度クリックして周りと同じ色に戻しておいて下さい。

Q別のフォームのTextボックスに記入した内容を別のフォームで利用するには?

フォーム1のテキストボックスに「りんご」と記入してコマンドボタンを押すとフォーム2のテキストボックスに「りんご」と表示させたいのですがVB6では可能ですか?

よろしくお願いしますm( _ _ )m

Aベストアンサー

フォームの名前がそれぞれ、Form1、Form2とし、テキストボックス名がそれぞれText1とします。

Form1の
Private Sub Text1_Change()
Form2.Text1.Text = Text1.Text
End Sub

で出来ます。

Qローマ字入力ができない!

日立のウィンドウズ(ビスタ)の新古品を買って使いはじめました。
日本語のローマ字入力をしようとするのですが、Altと左上の方にある「半角/全角」というキーをいっしょにおして今まで英数入力と切り替えていたのですが、
そう押しても「ローマ字入力に切り替えますか?」ときく画面で「はい」を選択しても切り替わりません。
キーの上に書いてあるかな入力から抜け出せず、困っています。

Aベストアンサー

言語バーは出ていますか?
日本語入力は、IMEだけとは限りませんので、言語バーの赤い所を右クリックで確認してみては。

IMEの場合IMEのプロパティの編集タブの変更を開くとキー操作一覧表示が出ますが←ここを前の持ち主がいじって(自分好みに変更してると)ると、IMEでも、全然違う動作に変わって居る場合がありますので、言いかえれば、自分好みにカスタマイズする事も出来ます。

因みに、私のは、かな、ローマ字切り替えは、Alt+半角/全角、でも【Ctrl】キーと【Shift】キーを押しながら、【カタカナ ひらがな】キーでも切り替わりすが、【Alt】キーを押しながら【カタカナ ひらがな】キーでは、変更できません。

詰まり、IMEのプロパティの編集タブの中身次第で動作が決定されます。

Qエクセル VBA ユーザーフォーム リストボックスで選択した値をテキストボックスに自動表示

エクセル初心者です。
ユーザーフォームで検索窓を作成しリストボックスへ表示
         ↓
リストから選択すると同じユーザーフォーム内のテキストボックスに値が自動で表示
         
というフォームを作りたいのですがご教授お願いします。

A列   B列  C列   D列   E列
番号 / 品名 / 品番 / 原価 / メーカー
1    A   20×20  100  A社
2    A   20×30  150  A社
3    B   50×50  100  B社


下図のようなフォーマットで考えています。

Aベストアンサー

回答が付かないようなので、とりあえず・・・です。
シートの内容(A2:E4)をリストに表示し、そこで選択された行の内容をラベル?(A列・・・E列と表示されているところ)に表示するVBAを書いてみました。参考になりますかね?
もしかしたら、検索結果のみをリストに表示したいのでしょうか?
正直なところ、やりたいことがよくわからないので、適切な回答になっていないと思います。必要出れば追加で質問することをお勧めします。

以下、サンプルです。コードはユーザフォームの下に張り付けて下さい。
リストボックス名「ListBox1」
ラベル名「LabelA,LabelB,LabelC,LabelE」

Private Sub ListBox1_Click()
LabelA.Caption = ListBox1.List(ListBox1.ListIndex, 0)
LabelB.Caption = ListBox1.List(ListBox1.ListIndex, 1)
LabelC.Caption = ListBox1.List(ListBox1.ListIndex, 2)
LabelE.Caption = ListBox1.List(ListBox1.ListIndex, 4)
End Sub

Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 5
ListBox1.RowSource = "Sheet1!A2:E4"
ListBox1.ListIndex = 0
End Sub

回答が付かないようなので、とりあえず・・・です。
シートの内容(A2:E4)をリストに表示し、そこで選択された行の内容をラベル?(A列・・・E列と表示されているところ)に表示するVBAを書いてみました。参考になりますかね?
もしかしたら、検索結果のみをリストに表示したいのでしょうか?
正直なところ、やりたいことがよくわからないので、適切な回答になっていないと思います。必要出れば追加で質問することをお勧めします。

以下、サンプルです。コードはユーザフォームの下に張り付けて下さい。
リストボックス...続きを読む

Qローマ字入力できない

ローマ字入力できません すごく打ち辛いです

Aベストアンサー

言語バー右クリック→設定→プロパティ→ローマ字/かな入力をローマ字入力 に設定
のことでしょうか?

QEXCEL ユーザーフォームの2つのtextboxの値で検索

久しぶりの投稿です。
今、EXCELのユーザーフォームのVBAで行き詰ってます。
お分かりの方宜しくお願いいたします。

まず、EXCELのシートが下の様にあります。
  A        B         C         D
1 得+支店 得意先コード  支店コード     得意先名
2 1030401   10304         01         XXX乳業
3 20000    20000                   XXX商事本店
4 2000001    20000          01         XXX商事 A支店
(AのセルはB&Cで)
  textbox1に得意先コード textbox2に支店コードを入力してコマンドボタンを押したら textbox3に得意先名を表示させるという事がしたいのですが 支店コードが入ってる時はよいのですが入ってない時
実行時エラー’1004’
WorksheetFunctionクラスのVLookupプロパティを取得出来ません。
となってしまいます。
VBAは下の様になってます
 Private Sub CommandButton1_Click()
  Set ADR = Worksheets("sheet1").Range("A2:C4")
TextBox3 = Application.WorksheetFunction.VLookup(TextBox1 + TextBox2, ADR, 4, False)
End Sub

久しぶりの投稿です。
今、EXCELのユーザーフォームのVBAで行き詰ってます。
お分かりの方宜しくお願いいたします。

まず、EXCELのシートが下の様にあります。
  A        B         C         D
1 得+支店 得意先コード  支店コード     得意先名
2 1030401   10304         01         XXX乳業
3 20000    20000                   XXX商事本店
4 2000001    20000 ...続きを読む

Aベストアンサー

こんにちは。
以下のように修正して試して見てください。

Private Sub CommandButton1_Click()
  On Error GoTo ExitER
  Set ADR = Worksheets("sheet1").Range("A2:D4")    '変更(A2:C4 → A2:D4)
  TextBox3.Text = Application.WorksheetFunction.VLookup(TextBox1 + TextBox2, ADR, 4, False)
  On Error GoTo 0
  Exit Sub
ExitER:
  MsgBox "一致するコードがありません"
  On Error GoTo 0
End Sub

Qローマ字・かな 入力モード切り替え、半角全角漢字で、できない。

1.ローマ字・かな 入力モード切り替え、半角全角漢字で、できない。

2.スペースで、空白できない。

Aベストアンサー

>いくつか、詳しく知りたいキーワードがあるのですが、お勧めの辞書サイトはありますか? できれば、右クリックで、検索できるものを教えてください。

私は、基本的にGoogleしか使いません。前回、私が記述した内容程度の語句なら、Googleにかかります。

>Sonyは、made in タイ。Acerは、中国でした。.

Sonyは、おそらくNMBのOEM製品です。Acerとあわせて、どちらも中級以上のキーボードだと思われます。

>3000円までが、予算ですが、そのくらいで、
買えますか?

激安\1000のキーボードもありますが、\3000ぐらい投資していただくと、程度のいい物が買えます。

>英語版、日本語版の見分け方は、ありますか?

日本で流通しているもののほとんどが日本語版で、英語版との見分け方は、一目瞭然です。英語版には、カナや漢字の文字が刻印(今は印刷)されていませんから。また、キートップの数も少ないです。

>セーフモードで、立ち上げたとき、選択肢が3つあって、適当に、選んだら、不都合はなかったみたいなので、
ほっときましたが、また、疑問に思いました。

上記と同様ですが、日本語版(106~109など)なら、「半角/全角」キーを押しておけば、99%以上の確率で正解です。

他の選択肢が、101系(英語キーボード)とAX系(10年以上前にすたれた日本語キーボード)しかありません。

#キーボードにこっていますので、いずれも持っていますが、AXキーボードは骨董品かつ珍品扱いです。

>いくつか、詳しく知りたいキーワードがあるのですが、お勧めの辞書サイトはありますか? できれば、右クリックで、検索できるものを教えてください。

私は、基本的にGoogleしか使いません。前回、私が記述した内容程度の語句なら、Googleにかかります。

>Sonyは、made in タイ。Acerは、中国でした。.

Sonyは、おそらくNMBのOEM製品です。Acerとあわせて、どちらも中級以上のキーボードだと思われます。

>3000円までが、予算ですが、そのくらいで、
買えますか?

激安\1000のキーボードも...続きを読む

QこのユーザーFormを開くと、TextBox1に Sheet1のRangeA1を表示させるには。

お世話になります。
エクセルVBA初心者で、見真似で作っています。

エクセル VBAにてユーザーFormに、TextBox1を入れました。
このユーザーFormを開くと、TextBox1に Sheet1のRangeA1を表示したいのですが、記述が分りません。

回答宜しくお願い致します。

Aベストアンサー

Private Sub UserForm_Initialize()
Me.TextBox1.Value = Worksheets("Sheet1").Range("A1").Value
End Sub
で出来ます。


人気Q&Aランキング