909 :
デフォルトの名無しさん :
2005/09/15(木) 13:22:54 ワークシートの名前をそのシート内の某セルにするのができません。 無理なんでしょうかね?
910 :
909 :2005/09/15(木) 13:52:40
VBAでクリップボートにある値をシートの名前にすることができればいいのですが・・・
911 :
デフォルトの名無しさん :2005/09/15(木) 14:04:29
"$D$3"
>>909 無理じゃないからがんがれ。
もちろんマルチするような奴が具体的な回答貰えないことは知ってるよな。
913 :
デフォルトの名無しさん :2005/09/15(木) 14:13:53
worksheets("Sheet1").name=worksheets("Sheet3").range("d3").value
914 :
909 :2005/09/15(木) 14:14:27
昨日できたんですよw なのに・・・忘れた
915 :
デフォルトの名無しさん :2005/09/15(木) 14:17:50
あっ!思い出した! 事故解決の悪寒
916 :
デフォルトの名無しさん :2005/09/15(木) 14:19:01
>>913 の 左辺=右辺を入れ替えてもではますかね?
917 :
デフォルトの名無しさん :2005/09/15(木) 14:23:49
またできなくなった(´・ω・`)ショボーン
918 :
デフォルトの名無しさん :2005/09/15(木) 14:38:02
Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("a1").Value" はできるのですが、 Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("a1:b1").Value" はできません。 つまりa1セルに山田、b1セルに太郎と入力されている場合 Worksheets("Sheet2")の名前が「山田太郎」となればててのですが。 &を使えばうまくいくのかな?
919 :
デフォルトの名無しさん :2005/09/15(木) 14:39:30
>>912 >マルチするような奴
してないってばまさか板違いでもマルチと呼ばれのか? (((( ;゚Д゚)))ガクガクブルブル
> 板違いでもマルチと呼ばれのか? 当然
921 :
デフォルトの名無しさん :2005/09/15(木) 14:50:29
>>920 いちいちチェックするなよw
向こうに書いて後でこっちに気づいたからココに書いたんだよ!
(ry
それはいいとしてセルA1とセルA2を別セル例えばA3に=A1&A2で合体させて
Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("A3").Value
とすればいいのかな?
もう昨日の昼からいろいろやってとてつもない時間使ってるよ・・・
> 向こうに書いて後でこっちに気づいたからココに書いたんだよ! そう言う場合は、最初に書いたスレで質問を取り下げるのが礼儀という物
923 :
デフォルトの名無しさん :2005/09/15(木) 14:57:46
>>922 工エエェェ(´д`)ェェエエ工
最初に書いたスレで質問を取り下げるの???
誰が決めたの?
暇人じゃないんだから
> 誰が決めたの? 2chのみんな > 暇人じゃないんだから そう、皆暇人じゃないんだから、あちこちに無駄な質問ばらまいて 回答者に無駄な時間費やさせるような真似はしないように。
>>905 EXCEL 2000だけど、マウス合わせたときの文字がこうやって取得できるから
一つ一つ変換。 こんなんでOKかな?
Dim cbp As CommandBarPopup
Dim ci As Long
Set cbp = CommandBars.FindControl(ID:=1691)
If cbp Is Nothing Then
MsgBox "見つかりませんでした。"
Else
Select Case cbp.TooltipText
Case "塗りつぶしの色 (自動)": ci = -4142
Case "塗りつぶしの色 (黒)": ci = 1
Case "塗りつぶしの色 (茶)": ci = 53
Case "塗りつぶしの色 (オリーブ)": ci = 52
Case "塗りつぶしの色 (濃い緑)": ci = 51
Case "塗りつぶしの色 (濃い青緑)": ci = 49
Case "塗りつぶしの色 (濃い青)": ci = 11
Case "塗りつぶしの色 (インディゴ)": ci = 55
Case "塗りつぶしの色 (80% 灰色)": ci = 56
Case "塗りつぶしの色 (濃い赤)": ci = 9
Case "塗りつぶしの色 (オレンジ)": ci = 46
Case "塗りつぶしの色 (濃い黄)": ci = 12
Case "塗りつぶしの色 (緑)": ci = 10
Case "塗りつぶしの色 (青緑)": ci = 14
Case "塗りつぶしの色 (青)": ci = 5
Case "塗りつぶしの色 (ブルーグレー)": ci = 47
Case "塗りつぶしの色 (50% 灰色)": ci = 16
Case "塗りつぶしの色 (赤)": ci = 3
Case "塗りつぶしの色 (薄いオレンジ)": ci = 45
Case "塗りつぶしの色 (ライム)": ci = 43
926 :
デフォルトの名無しさん :2005/09/15(木) 15:01:38
質問者と回答者だけなら
>>922 も分かるが、見ているその他多数の人の為なら
質問取り下げるのはどうかね?
ほとんどの人が両方のスレなんて見てないしましてや板違いでっせ?
ダメだな〜
927 :
925 :2005/09/15(木) 15:02:27
Case "塗りつぶしの色 (シーグリーン)": ci = 50 Case "塗りつぶしの色 (アクア)": ci = 42 Case "塗りつぶしの色 (薄い青)": ci = 41 Case "塗りつぶしの色 (紫)": ci = 13 Case "塗りつぶしの色 (40% 灰色)": ci = 48 Case "塗りつぶしの色 (ピンク)": ci = 7 Case "塗りつぶしの色 (ゴールド)": ci = 44 Case "塗りつぶしの色 (黄)": ci = 6 Case "塗りつぶしの色 (明るい緑)": ci = 4 Case "塗りつぶしの色 (水色)": ci = 8 Case "塗りつぶしの色 (スカイブルー)": ci = 33 Case "塗りつぶしの色 (プラム)": ci = 54 Case "塗りつぶしの色 (25% 灰色)": ci = 15 Case "塗りつぶしの色 (ローズ)": ci = 38 Case "塗りつぶしの色 (ベージュ)": ci = 40 Case "塗りつぶしの色 (薄い黄)": ci = 36 Case "塗りつぶしの色 (薄い緑)": ci = 35 Case "塗りつぶしの色 (薄い水色)": ci = 34 Case "塗りつぶしの色 (ペールブルー)": ci = 37 Case "塗りつぶしの色 (ラベンダー)": ci = 39 Case "塗りつぶしの色 (白)": ci = 2 End Select MsgBox ci End If
928 :
デフォルトの名無しさん :2005/09/15(木) 15:04:31
よくガイシュツの質問やスレ違いの質問にムキになる香具師がおるが 第三者の為に書いてやってるんだからな
ガイシュツの質問に文句を言えるのはFAQをまとめている人間だけ
なんかごちゃごちゃしてきたので、ここから心機一転
933 :
デフォルトの名無しさん :2005/09/15(木) 15:09:41
とりあえず漏れの質問を整理しよう。 シート名にA1+B1の名前を付けたい 例) A1=山田 B=太郎 の場合「山田太郎」 C1=A1&B1にしておけば、 Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("c3").Value の記述でできた。 でも別の方法もあると思うのでそれを知りたい
934 :
デフォルトの名無しさん :2005/09/15(木) 15:10:54
論破する奴は嫌い
935 :
デフォルトの名無しさん :2005/09/15(木) 15:11:59
937 :
デフォルトの名無しさん :2005/09/15(木) 15:21:44
学年の1組と3組と4組(これは毎回変わる)の番号n〜m(これも毎回変わる) を抽出させるVBA作るのは相当な知識が必要だろな・・・ これが全クラスの成績トップ10とかだったら簡単だけけうけど はぁ・・・
938 :
デフォルトの名無しさん :2005/09/15(木) 15:31:27
まだ初心者だけど、多分想像するにボタンとか作って ●年○組の成績が上位◎人分を抽出して印刷するとかいうのができるんだよね? さっさと覚えたいが脳が働かるねぇー
組が列方向に、番号が行方向に展開されていて、 指定組の指定番号範囲の値を抽出するとかなら VBAなら簡単だし、VBA使わなくても出せるレベルだけど もっと難しい事を想定してるの?
>>925 おお、これは。。
目から鱗のテクニックです!
これで望んでいる機能を作ることができます。
ありがとうございました。
942 :
デフォルトの名無しさん :2005/09/15(木) 21:23:40
>>939 もちろんそれは分かってる。
わかりやすく例えを学生の成績にしてるが
「全クラスのテストの点数が80点以上の人を抽出」だと簡単だが
「任意のクラスの任意の点数」の場合「任意」が多ければVBAで自動化するのも
あんま意味ないなと思って
943 :
デフォルトの名無しさん :2005/09/15(木) 21:26:12
とりあえず、VBAはまだ始めたばかりです。 やりたいことを日本語で書いて、それをどうPCへ命令すればいいのか考えがおもしろみ でもあり難しさでもあるよな。 とりうえず「この条件まで」「この場合」をマスターしないとな
>>943 ExcelのVBAの場合はWorkbooks,Worksheets,Range,Cellsの基本をマスターすれば
かなり色々なことが出来ると思われ。
テクニックに走らず、基本から少しづつやれば上達は早いと思う。
EXCELでコピーしたエリアを取得する方法ってありますか?
具体的に
>>946 すみませんレスありがとうございます。
VBA初心者です。
簡単なものをサンプル見たりして作っていますが今回書きましたのは
VBAを実行する前に、先に範囲を選択コピーしていた後を想定しています。
クリップボードにあるものを貼り付ける前にどのセル範囲がコピーされていたのか
を確認出来ればと思い投稿しました。
もう少し細かく書くとコピーされていた対象がセル単体なのか・複数セルの範囲なのか
行または列のみなのか等です。
>>947 だから具体的に何を知りたいの?
シート上でコピー時に表示される破線枠の範囲を知りたいのか、
クリップボードのデータが単一セルの物か複数セルのものかを知りたいのか。
君の書き込みは結果ばかり先走っていて状況説明が不十分。
そもそも、範囲選択のみ手動で行い、コピー以降をVBAで行った方が効率良くないか?
範囲選択した状態ならSelection.Addressで選択範囲取れるし。
>>948 すみません、説明が下手糞で・・
>そもそも、範囲選択のみ手動で行い、コピー以降をVBAで行った方が効率良くないか?
まさにそれをしようとしています。
何故コピーの範囲を確認したかったのかというと、貼り付ける場所はSelection.Addressを
使うつもりでした。
たとえば初めにコピーしていた範囲が行で貼り付けようとした場所が列だった場合など
エラーである理由をmsgboxで明確に表示させようと思ったからです。
単にエラーであるのを分岐させるならOn Error Goto・・で出来るのですが、、初めにコピー
をした範囲が明確であればこれを判断させるのも楽だと思いました。
すみません・・補足になります。 >シート上でコピー時に表示される破線枠の範囲を知りたいのか そうです!これです。 もし宜しければご指導お願いします。m(__)m
951 :
ゆみ :2005/09/16(金) 02:40:31
また荒らしが、、、
> 何故コピーの範囲を確認したかったのかというと、貼り付ける場所はSelection.Addressを > 使うつもりでした。 別に貼り付ける場所にSelection使うのはいいけど、コピー範囲でもSelection使えばいいじゃん 例えばこんな感じとか Private Sub CommandButton1_Click() Static hoge As Range If Application.CutCopyMode = xlCopy Then MsgBox "コピー範囲 :" & hoge.Address & vbCrLf & _ "現在の選択範囲 :" & Selection.Address '張り付け処理 Application.CutCopyMode = False Set hoge = Nothing CommandButton1.Caption = "Copy" Else Set hoge = Selection hoge.Copy CommandButton1.Caption = "Paste" End If End Sub
954 :
デフォルトの名無しさん :2005/09/16(金) 12:52:24
VBAで「今コピーしているもの」を貼り付けるには? マクロの場合、上でやってみるとVBAでの記述は「今コピーしているもの」になりますよね? そうではなく、例えばA1セルの値を貼りたいんです。 Name="A1"じゃ「A1」と貼られるしw
>>953 レスありがとうございます。
コピーは主にショートカット(Ctrl+C)を使うので、マクロのコピーにこれを
割り当ててコピーと一緒に選択範囲をPublic変数で持ち越して他のVBAで試す
ところまでは出来ていました。
ただそれをせずに、他にコピーの範囲がわかる方法があるのではと思い投稿
しました。
ヘルプをみたりしてみましたが、現状の自分のスキルではそこが限界みたいです。
どうもありがとうございました。
957 :
デフォルトの名無しさん :2005/09/16(金) 22:31:47
958 :
デフォルトの名無しさん :2005/09/16(金) 22:32:49
Name="A1.value"でもダメなんだよな
> Name="A1"じゃ「A1」と貼られるしw 当然 > Name="A1.value"でもダメなんだよな 当然
960 :
デフォルトの名無しさん :2005/09/17(土) 01:07:39
質問です。 エクセルなんですが 0000 0000 0000 0000 0400 3456 0450 これを 3456 3456 3456 3456 3456 3456 のように4を基準として上方向にそろえるようなプログラム を作りたいのですが、どのようにすればよいのでしょうか? 教えてください。お願いします。
>>960 数値ではなく文字列として扱って
あとはループと条件分岐と文字列操作
VBAのテク的には超初歩的な機能だけでいける
あとのアルゴリズム的な部分はVBA関係なくお前の知能次第
962 :
デフォルトの名無しさん :2005/09/17(土) 02:00:56
>>961 返答ありがとうございます。
しかしながら初心者で低能なため
それらをどう組み合わせていいものかよく分かりません…。
具体的に教えていただけると有難いです
966 :
デフォルトの名無しさん :2005/09/17(土) 10:36:25
919 名前:デフォルトの名無しさん 投稿日:2005/09/15(木) 14:39:30
>>912 >マルチするような奴
してないってばまさか板違いでもマルチと呼ばれのか? (((( ;゚Д゚)))ガクガクブルブル
>>966 間違った時点で質問権失ってますからその通りです。
そもそも板違いじゃないしな
969 :
デフォルトの名無しさん :2005/09/17(土) 13:43:54
shape.nodes は4個単位で座標が帰ってくるのですが、 両端ではない真ん中の2点って、何の座標でしょうか?
970 :
964 :
2005/09/17(土) 22:36:47 >>965 ありがとうございます。
そろえるつもりが全て一番上に行ったり一つだけそろったり
と苦戦してるので行ってきます。