Excel VBA 質問スレ Part62

レス数が1000を超えています。これ以上書き込みはできません。
1
垢版 |
2019/06/24(月) 00:21:37.48
!extend:checked:vvvvv:1000:512

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part61
http://mevius.5ch.net/test/read.cgi/tech/1556203263/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/09/15(日) 07:04:00.27ID:lD21pqlQa
勉強すればいいのに
979デフォルトの名無しさん (スプッッ Sd9f-htbz)
垢版 |
2019/09/15(日) 07:09:56.72ID:bJ3fW1U+d
>>972
全く違うので関連性はありません
2019/09/15(日) 08:30:42.63ID:7adf6vSwM
世の中にはSQLが書ければコマンド一発でできることをVBAで猿のようにループ回してる糞コードが山ほどあることを考えると決して無関係ではない
無関係と思いこむことで自らの無能を正当化するのはやめなさい
2019/09/15(日) 09:42:56.34ID:VKeDSGtjM
だれもSQLとVBAが無関係とか言ってないのに何を言ってるんだよ…
VBAが使える人とSQLが使える人の話な
2019/09/15(日) 09:57:44.01ID:tCz5SmrL0
イメージは975
excel から逃れられないひとが使うイメージ
2019/09/15(日) 10:12:56.75ID:IaPtpEN9x
スレチで申し訳ないがM言語を使える人ってどれくらいいるんかね
上司の謎采配でDB導入に待ったがかかってるからExcelでPowerQueryを組んでるんだが誰にも引き継ぎ出来なくなりそうで怖い
2019/09/15(日) 10:19:11.53ID:5uhhTsGd0
PowerQueryは謎な挙動が多すぎる
2019/09/15(日) 15:08:13.09ID:M+l28bS0d
VBAよりSQLの方が簡単だからSQL覚えておくと良いと思う。
SQLはどう使うかで難しくなるけど。
2019/09/15(日) 15:09:44.24ID:M+l28bS0d
>>983
M言語は全く分からん。
やってみても良いんじゃない?
様子見もありだけど。
987デフォルトの名無しさん (ワッチョイ ff8c-gAGy)
垢版 |
2019/09/15(日) 15:30:29.07ID:vKevM/ZS0
ExcelのM言語ってMUIMPSのことなの? それとも全くの別物?
2019/09/15(日) 16:59:17.31ID:5uhhTsGd0
M言語の仕様
英語だけど。

https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification
2019/09/15(日) 17:58:13.89ID:k9jPpUfmp
どうしても今すぐ仕事で使いたく、無知なまま質問することをお許し下さい。
ワンクリックでセルに色が付き(塗りつぶし)、色を付けたところを再度クリック(こちらはダブルクリックが理想)すると元に戻る(白くなる)ようにしたいです。
知恵袋で近い回答を見つけたのですが範囲の指定方法が分からず。ただ、こちらは白に戻すのをワンクリックで行うため理想とは若干異なります。一応載せておきます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub '※1
Select Case Target.Interior.ColorIndex
Case Is = xlNone
Target.Interior.ColorIndex = 3 '※2
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End Sub
※1:数字の 1 はA列を意味します。C列なら 3 です。
※2:数字の 3 は赤で、4=緑、5=青、6=黄、7=ピンク、8=水色、です。

難しくなってしまうようでしたら元に戻す動作もワンクリックで大丈夫です。ご教示頂けると嬉しいです。
2019/09/15(日) 18:10:30.21ID:ttkdv6CO0
>>972
高速化について調べていったら、最終的に行き着くのがSQLって感じ。
あとは、会社のPCにAccessが入ってないとか。
2019/09/15(日) 18:16:17.99ID:gmNpe+SH0
>>989
SelectionChangeは選択範囲を変更した場合のイベントだね
BeforeDoubleClickに変えればいいんじゃない
992デフォルトの名無しさん (スプッッ Sd9f-htbz)
垢版 |
2019/09/15(日) 18:22:27.35ID:SlyZta/Pd
アクセスをDBと思ってる人は少数だろう
2019/09/15(日) 18:27:50.10ID:k9jPpUfmp
>>991
ありがとうございます。beforedoubleclickに変更すると範囲指定できるようになるのでしょうか?このコードだと 1 と入力されているところが範囲指定の部分だと理解しているのですが、例えば("A1:C5")と入れてもエラーになってしまって、、
2019/09/15(日) 18:34:44.00ID:gmNpe+SH0
>>993
ならこれだ。
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Call changeCellColor(0, Target) '0は空白色を指します。

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Call changeCellColor(3, Target) 'ColorIndexに対応。3=赤、4=緑、5=青, 6=黄など。

End Sub

Private Sub changeCellColor(IndexCode As Long, Target As Excel.Range)

Dim LimitedRange As Excel.Range
Set LimitedRange = Target.Worksheet.Range("A1:E10") 'A1:E10のセル範囲み動作するが、変更を。
If Not Excel.Application.Intersect(Target, LimitedRange) Is Nothing Then
Target.Interior.ColorIndex = IndexCode
End If

End Sub
2019/09/15(日) 18:37:38.41ID:gmNpe+SH0
>>993
ちなみに元のコードは、選択セルが1行目でなければ変更、という意味になるんで座標入れてもNG.
座標で効果範囲を制限したい、ってちゃんと言っといた方がよかったね。
2019/09/15(日) 18:42:08.05ID:VJ7AKcnf0
>>994
すごい…作ってくださりありがとうございます!!
今手元にパソコンがないので明後日職場で試してみます。お時間を割いて頂きありがとうございました!
2019/09/15(日) 18:45:30.40ID:VJ7AKcnf0
>>995
なるほど…そういう意味だったのですね!ご親切にありがとうございます!
998デフォルトの名無しさん (ワッチョイ fff7-+dKN)
垢版 |
2019/09/15(日) 18:45:54.98ID:gmNpe+SH0
間違えた。元のコードは選択セルが1「列」目でなければ変更。
あとこれ、ドラッグ選択すると制限外セルの色まで変わっちゃうな。問題あれば
Target.Interior.ColorIndex = IndexCode を
Excel.Application.Intersect(Target, LimitedRange).Interior.ColorIndex = IndexCode に変えといて
2019/09/15(日) 18:49:06.25ID:VJ7AKcnf0
>>998
了解しました!どうもありがとうございます♪
1000デフォルトの名無しさん (ワッチョイ 9f8e-J3NS)
垢版 |
2019/09/15(日) 20:32:37.28ID:60BoiHy40
意味もわからずネットで見つけたコードを使う馬鹿の作ったVBA
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 83日 20時間 11分 0秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況