[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『vba』(bukky)
初心者です
A B C D
1 ABE INOU KOBA FUJI
2
3 ACELL
4
ACTIVECELLがあるところ行1を表示したいのですが上の場合はINOUです
変数を使って完成させると思うのですがうまくいきません
初歩的な質問で申し訳ありませんが宜しくお願いします
< 使用 Excel:Excel2016、使用 OS:Windows10 >
何が上手くいかなかったのか、提示してください。
作成途中でエラーになるとしても、コードを提示してください。
そこから、貴方の理解度を推測して、マッチした回答が得られると思いますが。
お互い、無駄なことはしたくないですからね。
作って欲しいなら、ハッキリ仰ったほうがいいですね。
(tkit) 2022/08/01(月) 14:10
■2
>変数を使って完成させると思うのですがうまくいきません
なにを、どうしたら”うまくいかない”のか【現状のコード】を示したうえで、具体例をあげて(エラーが出るなら、その個所・エラー番号・エラーメッセージ、エラーにならないが想定外の動作になるなら××になるはずが○○となってしまう等)説明されるとよいでしょう。
■3
>ACTIVECELLがあるところ行1を表示したいのですが上の場合はINOUです
表が崩れてよくわかりません。
↓のような表だとして、【アクティブセルがB3セル】のときにどうなればいいのですか?
_A__ _B__ _C__ _D__ 1 ABE INOU KOBA FUJI 2 3 4
※1 想像するに、アクティブセルに、同じ【列】の1行目の値を持ってきたいと思うのですが念のため確認しています。 ※2 上記の想像どおりなら変数は要りません。
(もこな2) 2022/08/01(月) 14:17
セルがB3のときはINOUです 当然B4でも同じです
C2ではKOBAです
(bukky) 2022/08/01(月) 14:31
Msgbox activecell.value
>ACTIVECELLがあるところ行1を表示
?????? 変数が出てくるとこも不明 なまじ知ったような言葉は書かん方がいいと思う。 余計に意味が解らない。
(意味不明) 2022/08/01(月) 15:04
こちらの想像どおりなら↓のようにするだけだと思っています。
[アクティブセル]の値 = [1行目,アクティブセルの列]のセルの値
(もこな2) 2022/08/01(月) 15:05
セルをクリックしたときにユ−ザ−ホームがひらいてテキストボックス1に列の1行目の文字が表記されるようにしたいのです。
Private Sub UserForm_Initialize()
Dim c
For c = 1 To 30
Me.TextBox1.Value = Cells(1, c).VALUE NEXT これでだめですよね
(bukky) 2022/08/01(月) 15:23
■6
>セルをクリックしたとき
○○をしたとき〜という条件でマクロを発動させるには、【イベント】というものを使いますが、残念ながら”クリックしたとき”という条件は用意されていません。
【右クリックをしたとき】【ダブルクリックをしたとき】という条件ならばありますので、そちらに変えられないか検討をおすすめします。
■7
よって、例えば↓のような処理を考えると良いでしょう
右クリックをしたら発動するマクロ ユーザーフォームを(読み込んで)表示 処理終了 '============================================================================= ユーザーフォームが読み込まれるときに発動するマクロ Me.TextBox1.Value に アクティブシートの[1行目,アクティブセルの列]のセルの値 を入れる 処理終了
なお、右クリックイベントやダブルクリックイベントは【シート】で発生するものなので、シートモジュール書きますし、【ユーザーフォーム】に関するイベントはユーザーフォームのモジュールに書くようにしてください。
(もこな2) 2022/08/01(月) 15:51
されたい事が、明確にわかりませんが…推測するに 提示されたコード内容だと…程遠いですね。
では、ダメダメかと言うと…0点ではありませんが 点数を付けるなら、100点満点中...15点位でしょうか (-ω-;)ウーン
(もこな2)さんから、アドバイスを頂いてますが 100点に持っていくには、ご自身では至難かと思いますので 少々、応援です。(参考になれば)
>セルをクリックしたときにユ−ザ−ホームがひらいてテキストボックス1に列の1行目の文字が表記されるようにしたいのです。
厳密に言うと、セルをクリックではないですが、セルを選択したときに 発動させるイベントではどうなのでしょうか?
※対象のシートモジュールへ記入して、セルを選択してみてください。
◇ヒント1
Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address(False, False) End Sub
◇ヒント2
Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox Cells(1, Target.Column).Value End Sub
【注意】
・同じイベントは両方はいっぺんに動きませんので ひとつずつしてください。
・ヒント1は、直接関係がありませんが、理解をしておくと 将来的に良いかなと思います。
では、頑張ってください。
(あみな) 2022/08/02(火) 06:24
>セルをクリックしたときに >ユ−ザ−ホームがひらいてテキストボックス1に列の1行目の文字が表記されるようにしたい
「セルを右クリックしたとき」にしましょうよ。 (ここ10年間「単純クリック」でまともに成功した例を見た事ありません)
'<ユーザーフォーム>のモジュールに Private Sub UserForm_Initialize() TextBox1.Value = Cells(1, ActiveCell.Column).Value End Sub
'<当該シート>のモジュールに Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.CountLarge = 1 Then '単セルの時だけ処理 Cancel = True UserForm1.Show Else Exit Sub End If End Sub
(半平太) 2022/08/02(火) 09:28
↑ と…大先輩が、おっしゃっています。
※既に、完成してますし...(笑)
(あみな) 2022/08/02(火) 10:07
SelectionChangeイベントが思いつかなかったわけではないのですが、
1) clickとただの選択の区別がつかない 2) マウス操作じゃなくても発動する 3) ActiveCellを選択しても発動しない
ということころから、なかったことにした次第です。
ですが、どうしても【クリック】に拘りたいということであれば、セルに何らかの入力があることが前提とはなりますが、次のアプローチが使える・・・・・かもしれません。
【標準モジュール】
Sub 事前準備() Dim MyRNG As Range
For Each MyRNG In ActiveSheet.UsedRange ActiveSheet.Hyperlinks.Add Anchor:=MyRNG, Address:="" MyRNG.Font.ColorIndex = xlAutomatic MyRNG.Font.Underline = xlUnderlineStyleNone Next MyRNG End Sub
【シートモジュール】
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) MsgBox Cells(1, ActiveCell.Column).Value End Sub
要は、わかりづらいように【ハイパーリンク】を設定しておき、ハイパーリンクを"クリック"したときのイベントを使ってみるという方法です。
※一応、できなくはないという話であって推奨するという話ではありません。参考として理解してください。
ほか、後学のために教えて頂きたいのですが、↓は結合セル対策でしょうか?
If Target.CountLarge = 1 Then
意図がわからなかったので便乗ですが、ご教授いただけると幸いです。
(もこな2) 2022/08/02(火) 18:31
>↓は結合セル対策でしょうか? > If Target.CountLarge = 1 Then
範囲選択して右クリックした場合は、処理対象外であろうと思ってのことです。
(半平太) 2022/08/02(火) 20:18
(もこな2) 2022/08/04(木) 12:47
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.