Excel VBA 質問スレ Part65

■ このスレッドは過去ログ倉庫に格納されています
2020/03/17(火) 16:27:20.88ID:hh8LiIgR0

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

※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/03/17(火) 18:15:02.25ID:xIJjSw0m0
>>1
2020/03/17(火) 19:24:51.48ID:+T54gcvp0
>>1

>全スレ998
挿入か貼り付けかはっきりしてくれ
2020/03/17(火) 21:26:48.27ID:xIJjSw0m0
行をコピーして挿入操作
マクロ記録したら、Selection.Copy Selection.iIsert Shift:=xlDown が出てきたけど普通に再生できたぞ
2020/03/18(水) 04:12:39.20ID:oTsktMrB0
VBAからインターネットエクスプローラーを起動して、
指定したURLのサイトを表示して、
スクリーンショットを取って行く。
という作業を自動化したくて色んなサイトのコードをコピペして、
一応動くものは出来たのですが画質が悪いです。
下記はそのコードの一部分なんですが、どこをどういじれば
画質が良くなるのでしょうか。

Private Declare PtrSafe Sub keybd_event Lib "user32" ( _
 ByVal bVk As Byte, _
 ByVal bScan As Byte, _
 ByVal dwFlags As Long, _
 ByVal dwExtraInfo As Long)

・・・

 keybd_event &HA4, 0&, &H1, 0&
 keybd_event vbKeySnapshot, 0&, &H1, 0&
 keybd_event vbKeySnapshot, 0&, &H1 Or &H2, 0&
 keybd_event &HA4, 0&, &H1 Or &H2, 0&
2020/03/18(水) 05:01:35.56ID:oTsktMrB0
プラウザのウィンドウサイズを大きくした後で画面キャプチャしたら
満足の行く画質になりました。
>>5の質問は撤回します。
2020/03/18(水) 12:15:49.12ID:w6Ggs+SYM
>>4
まじすか
コピー元が別ブックだったのでそのせいかも
2020/03/18(水) 12:50:26.65ID:FL4Tmu/bd
>>5
キーボードマクロ最悪
2020/03/18(水) 21:13:19.46ID:ILNBMFwG0
リボンを自動的に非表示にする設定だととクイックアクセスに登録したものも含めてコマンドがすべて隠れてしまうんだけど
特定のコマンドのみ表示させておく方法はないかな?
マクロとして登録させて画像にマクロを登録しようとしたけど動かない。
2020/03/19(木) 06:45:24.60ID:3WIKr7Ue0
>>9
うちのExcel2016だと隠れないけど、それ以降だと違うのかな
リボンの下に表示offでもだめなら
フォーム作って、UserForm.ShowModal=False という手もあるよ
2020/03/19(木) 23:50:18.77ID:7Zzxd2N00
>>10
>>9
UserForm.ShowModal=False はどういう方法?
2020/03/20(金) 00:29:09.01ID:cQ88e7Ay0
>>11
自作フォームをカスタマイズメニューに見立てて自作のマクロなどを呼び出す
2020/03/20(金) 08:35:07.45ID:SwKaoqcN0
>>12
マクロを呼び出すのは簡単なんだけど、各コマンド(既存の機能)をよびだすのかできない
たとえば描写とかペンとか消しゴム機能とか
2020/03/20(金) 08:58:05.53ID:8tNMwiiZ0
既存の機能が必要ならリボンを非表示にしなきゃ良いんじゃね
2020/03/20(金) 11:45:56.36ID:gOi7n73D0
>>13
SendKeys "% 〜
2020/03/20(金) 12:04:13.08ID:kTqu2sOZ0
>>15
ショートカットキーを設定してってことかな?
2020/03/20(金) 12:36:23.76ID:dFakeV1fa
csvを読む場合で、見出し行とデータ行が文字と数値で形式が違う場合とかどう処理しますか?
2020/03/20(金) 12:41:37.47ID:FhkC8bvBx
>>17
パワークエリで読み込んで任意のデータ型に変換する
2020/03/20(金) 13:27:20.08ID:jE5Tt0oL0
>>17
CSVを読み込む場合にブックとして読み込むことはまず無い。
というか、まずテキストとして読み込む。
処理も何も、全て自由に出来るぞ。
2020/03/20(金) 19:47:02.79ID:1JHTKX/vM
>>17
全部文字として読み込む。コードで数値として処理したいならcintやcdblでキャストすればいい。因みにワークシート関数にはNumberValueってのがある。
2020/03/20(金) 19:50:02.57ID:wHnf8pbD0
あれなんとかならんかな。
NULLがあるとコケるから、
いちいちIIF(A IS NOT NULL, CINT(A))ってやらなきゃいけないの。
22デフォルトの名無しさん (ワッチョイ 8b46-m7vt)
垢版 |
2020/03/22(日) 12:27:27.61ID:bv32jkb00
VBA で、セルの指定しても行の指定が無効になってて、必ず1行目に表示されてしまいます。
何が原因でしょうかね?
教えてください。
23デフォルトの名無しさん (スプッッ Sd33-dSJs)
垢版 |
2020/03/22(日) 12:28:32.17ID:hR7PxyLud
>>22
お前の馬鹿頭
24デフォルトの名無しさん (ワッチョイ 8b46-m7vt)
垢版 |
2020/03/22(日) 12:35:14.95ID:bv32jkb00
原因わかりました。すみませんでした。
25デフォルトの名無しさん (ワッチョイ 8b46-m7vt)
垢版 |
2020/03/22(日) 12:36:52.15ID:bv32jkb00
ここの住民の霊性は暴力団と同じですね
2020/03/22(日) 13:22:11.60ID:TNUWFKUeM
ここだけじゃなく5chはどこも似たり寄ったりです
貴方が来るような場所じゃありません
27デフォルトの名無しさん (ワッチョイ 118e-dSJs)
垢版 |
2020/03/22(日) 14:47:18.63ID:9uw1USbo0
>>25
霊性?
馬鹿確定
原因としては正しかっただろうが
2020/03/22(日) 15:26:01.73ID:bTaHgmHe0
>>22
ソースコード書けないの?
君書いたのが本当にセルの指定をしてると信じる人がいるとでも?
29デフォルトの名無しさん (ワッチョイ 2beb-W/ZL)
垢版 |
2020/03/24(火) 17:30:30.61ID:s99Qd4t60
よろしくお願いします。

数百行あるシートで、上から順に一行ずつ以下の操作を行いたいです。

(1) C列の文章の中に、「一言コメント:」という文字が入っていれば2へ。なければ終わり、次の行へ
(2) 「一言コメント:」とそれ以下の文字列をC列の値から削除し、E列の、元々の値(文字列)の前に貼りつけ
(3) E列の文字列の中から「「一言コメント:」という文字列を削除

以上です。
まず、(1)の検索がうまくいかず、(2)の文字列取得も、一文字ずつ数えてカウントし、あらためて「終わりから○文字」みたいな
やりかたをするしか方法が浮かびません。
たぶん、上級者ならもっとシンプルな書き方ができるのではないかと思い質問させていただきました。

どのように書けばよいでしょうか?よろしくお願いいたします。
2020/03/24(火) 17:42:47.48ID:2RYGBfo0M
For文をRowCntって変数で回していると仮定して
If Cells(RowCnt, 3).Value Like “*一言コメント:*″ Then
で引っかけるとか?
2020/03/24(火) 17:58:43.96ID:BIkwDKwH0
VBAなくても関数だけで目的達成しそう
2020/03/24(火) 18:33:24.09ID:n56XI6Ab0
>>29
Ruby で作った

text = <<"EOT"
ab一言コメント:12
あいう コメント:
xyz一言コメント:456
EOT

search_word = "一言コメント:"
sw_length = search_word.length # 7文字

text.each_line do | line | # 1行ずつ処理する
line.strip! # trim

# 単語が見つかった時だけ、単語の前後を出力する
if pos_1 = line.index( search_word )
puts "#{ line[ 0 ... pos_1 ] } - #{ line[ pos_1 + sw_length .. -1 ] }"
end
end

出力
ab - 12
xyz - 456
■ このスレッドは過去ログ倉庫に格納されています