Excel VBA 質問スレ Part80(ワッチョイあり)
1 :デフォルトの名無しさん (スップ Sd92-oKFl) :2023/11/24(金) 20:41:50.46 ID:hbrpz6MLd.net !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ↑同じ内容を3行貼り付けること ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980 が立てること 無理なら細かく安価指定 ※前スレ Excel VBA 質問スレ Part77 https://mevius.2ch.net/test/read.cgi/tech/1658009255/ Excel VBA 質問スレ Part78 https://mevius.2ch.net/test/read.cgi/tech/1667104996/ Excel VBA 質問スレ Part79(ワッチョイあり) https://mevius.5ch.net/test/read.cgi/tech/1674875532/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
7 :デフォルトの名無しさん :2023/11/28(火) 11:39:13.35 ID:x9cWJykmM.net >>2 の内容だと制御がしたいのではなくてデータ処理の方じゃないの?
8 :デフォルトの名無しさん (ワッチョイ 5fb5-rRln) :2023/11/29(水) 23:02:10.85 ID:A5d8zOu00.net データ処理なんよ 座標はマイナスもあるからなかなかめんどくさい 幾何公差やズレ量はvbaで作り込むとめちゃんこ便利なんだけどね あと100年はvbaでいいぐらいめちゃんこしこしこ相性がいい
9 :デフォルトの名無しさん :2023/11/30(木) 10:17:18.39 ID:YCOtWOlp0.net リンク先見てみればわかるけど、制御もデータ処理も両方だよ 接続方式も様々、データ送るのも受けるのもあれこれ それが「無料」 らしい じぶんトコの機器と繋いで試してみるには充分 受け取ったデータをどう加工するか それがしやすいか、試行錯誤するにはもってこいじゃ?
10 :デフォルトの名無しさん :2023/12/23(土) 11:24:28.66 ID:0DKgSd0V0.net すみません 質問です C1にはrandom関数が入っています。B1にはC1のコピーしたものの値を貼り付けています。A1にはB1が0.6より大きければ◯小さければ✕が入るようにします。A1 を下にオートフィルすればB2にはC1を参照としてC1をコピーした値、A2にはA1と同じように◯✕が入るようにしたいです よろしくお願いいたします https://i.imgur.com/hBsRvdT.jpg
11 :デフォルトの名無しさん (ワッチョイ a3b5-pDLy) :2023/12/23(土) 15:04:46.53 ID:Gwk7x+r/0.net AとB列は全部同じ値になるだけじゃ
12 :デフォルトの名無しさん (ワッチョイ 63bf-pDLy) :2023/12/23(土) 19:02:50.72 ID:QzF0pH9f0.net マクロが突然壊れた。 ある時、マクロの一覧が表示されなくなり、 セキュリティー(トラストセンター)をいじったら一時的に 治ったが、また表示されなくなり、今に限っては マクロを動かすと全く違う動作をしたり、今まで正常に 何回も動かしてたマクロが突然エラーになって動かない。 ファイルが壊れたか???と思ったが、別のPCでそのファイル 正常に動作するんで、オフィス修復やったが治らず、 で、結局再インストしたらあっけなく治った。 プログラムが何かの拍子で壊れる、ということがあるらしい。
13 :デフォルトの名無しさん (ワッチョイ 63bf-pDLy) :2023/12/23(土) 21:28:56.85 ID:QzF0pH9f0.net 12だがやはり「マクロの登録」一覧からマクロが突然消える。 誰か対策教えてくれ。
14 :デフォルトの名無しさん :2023/12/23(土) 21:55:07.93 ID:wXkv6mGDd.net どうせマクロに署名してないから起動時に無効化されてるってオチ
15 :デフォルトの名無しさん (ワッチョイ 6301-cfY7) :2023/12/23(土) 22:27:46.32 ID:8ng/MRqb0.net ストレージか?
16 :デフォルトの名無しさん :2023/12/24(日) 08:57:28.13 ID:emWydGj70.net >>12 随分前だけどバージョン違いのExcelでマクロを起動すると似たような状況になったことがあったな 複数人で使い回したりしてる?
17 :デフォルトの名無しさん :2024/02/29(木) 03:28:34.72 ID:fThkXDoh0.net 以下のようにデータを入力したときに 画像のようにレイアウトをかえて、表示用として別シートに書くことは出来ますか? A出版 004 A出版 003 B出版 006 B出版 005 (本当は画像と同じように書きます) https://i.imgur.com/1vIYIHQ.jpg 単純に取引先でソートして VBAで転記するときに、 上と同じなら文字削除すれば簡単でしょうか?
18 :デフォルトの名無しさん :2024/02/29(木) 03:34:27.60 ID:Abbi1OW1d.net できます
19 :デフォルトの名無しさん (ワッチョイ ca77-DUIk) :2024/02/29(木) 09:37:23.42 ID:VmbR4Tf/0.net >>17 後の流用を考えると、削除しないほうが良いんじゃない?
20 :デフォルトの名無しさん :2024/02/29(木) 14:12:43.39 ID:JwatrK+sd.net >>19 あくまでも表示用のシートです 削除しないとなると、どのような処理になりますか? 色を背景色にするのでは選択すると入力できてしまうので、誤入力防止で削除を考えました
21 :デフォルトの名無しさん :2024/02/29(木) 14:38:52.61 ID:VmbR4Tf/0.net >>20 ごめん、表示用だと認識してませんでした
22 :デフォルトの名無しさん (ワッチョイ 1b56-AA/x) :2024/03/03(日) 09:38:35.96 ID:nYZbKW3u0.net セル内に改行付きで入ってる文字列をWordファイルの指定のセルに転記させたいです。 当初差し込み印刷でやろうとしたんですが改行が消えてしまって…
23 :デフォルトの名無しさん :2024/03/05(火) 15:19:55.05 ID:lrAkKyth0.net >>22 具体的な用途がわからないけど、文書内の表のセルにただ入力したいだけなら文字列で書き込めばいいんじゃないかな Sub 文書内のセルに転記() Dim str As String str = Cells(1, 1).Value Dim doc As Object, i As Long Set doc = Documents.Open(ThisWorkbook.Path & "\文書1.docm") doc.Tables(1).Cell(1, 1).Range.Text = str End Sub
24 :デフォルトの名無しさん (ワッチョイ 7b6e-0WZ8) :2024/03/05(火) 21:04:29.79 ID:vpqODFup0.net 500行ずつ下へ移動するオシャレな方法があれば教えて コードは簡単に書けるけどボタンをどうしようか悩んでいる。
25 :デフォルトの名無しさん (ワッチョイ cb01-fRaX) :2024/03/05(火) 22:42:06.84 ID:uv6Tn7vf0.net リボンかクイックに置けばいいだけ
26 :デフォルトの名無しさん (スップ Sdbf-ZLJX) :2024/03/05(火) 23:06:34.48 ID:1MXf4VgDd.net ボタンなんてダサい ショートカットキーにしとけ
27 :デフォルトの名無しさん (ワッチョイ 4bfa-sqC9) :2024/03/06(水) 00:55:19.48 ID:g0HJYNda0.net >>26 ショートカットキーでマクロ発動とかできるの?
28 :デフォルトの名無しさん (ワッチョイ cb41-zqCT) :2024/03/06(水) 21:07:09.63 ID:J53jsheD0.net ちっさいユーザーフォームに[↓500] [↑500]のボタン置いて、Sheetの前面にフロートさせとく
29 :デフォルトの名無しさん :2024/03/22(金) 23:46:16.21 ID:4cmyPG190.net 質問させていただきます Cellsでセルを指定するときにセル番地を簡単にわかる方法はないでしょうか? R1C1参照形式というものがありますがこれだとRangeを使用する際に不便だと思います。皆様はどのようにCellsとRangeに適したセル番地を把握されてますか?
30 :デフォルトの名無しさん (ワッチョイ 591c-/oLk) :2024/03/23(土) 01:40:54.15 ID:WFks+Yvw0.net よくわからないけど Range("A1") と書くのと Cells(1, "A") と書くのは同じです
31 :デフォルトの名無しさん (ワッチョイ d901-8/Mv) :2024/03/23(土) 09:27:28.74 ID:Y5NpvLBG0.net >>30 mjsk 初めて知った(今頃)
32 :デフォルトの名無しさん (スプープ Sd33-MwD1) :2024/03/23(土) 09:36:59.52 ID:mhs1yCGmd.net >>31 rangeオブジェクトのリファレンスに一度目を通しておくと良いよ
33 :デフォルトの名無しさん :2024/03/23(土) 13:55:04.13 ID:ulv10UCb0.net 助けて下さい txtに変換して そのtxtを別のアプリで 読み込もうとしています Application.CutCopyMode = False Dim book1 As Workbook Sheets("label").Select Application.DisplayAlerts = False Set book1 = Workbooks("◯◯◯.xlsm") book1.SaveAs Filename:="C:\Users\aaaaa\Desktop\片山\label.txt", _ FileFormat:=xlCurrentPlatformText Application.DisplayAlerts = False Range("B3").Select Sheets("入力チェック表").Select Range("H4").Select Application.Quit ThisWorkbook.Close ActiveWorkbook.Close SaveChanges:=False End Sub
34 :デフォルトの名無しさん :2024/03/23(土) 14:01:19.14 ID:ulv10UCb0.net シートlabelをtxtに変換して 別のアプリで読み込もうと思います ですが、最後はエクセルが 終了してしまうため (bookが閉じる) 終了しないようにしたいのですが 最後3行を削除すると txtを保存するためのアラートが出たり アプリで読み込むと 読込エラーが出たりします (txtファイル使用中の為?) エクセル終了しない方法は ありますか?
35 :デフォルトの名無しさん :2024/03/23(土) 14:30:10.11 ID:JDdDfN3id.net >>34 Application.quitしてるからExcelが終了するのは当然では
36 :デフォルトの名無しさん :2024/03/23(土) 15:09:35.81 ID:ulv10UCb0.net >>35 ありがとうございます >>34 Application.quit を削除したのですが エクセルは終了しませんが book?が終了します
37 :デフォルトの名無しさん :2024/03/23(土) 15:47:42.35 ID:2VB/Vbesd.net >>36 ブック開いてると排他制御かかるから書き込みロックするソフトから当該ブック開けなくなる だから閉じるしかないと思うよ
38 :デフォルトの名無しさん :2024/03/23(土) 15:48:11.11 ID:2VB/Vbesd.net ああ、Excel側で読み取り専用で開き直すって手があるな
39 :デフォルトの名無しさん :2024/03/23(土) 16:28:38.79 ID:ulv10UCb0.net >>37 アドバイスありがとうございます 閉じるしか 無理ですか...
40 :デフォルトの名無しさん :2024/03/23(土) 22:42:53.35 ID:ULmGYrNT0.net 助けてで始まる質問をする奴は○○って法則
41 :デフォルトの名無しさん :2024/03/26(火) 11:45:12.02 ID:JlWIdVqx0.net ブックのフルパス取得しといて開きなおすとこまで書けばいいんじゃ
42 :デフォルトの名無しさん :2024/03/26(火) 12:10:47.06 ID:qhsI8dwj0.net 何がしたいかわからん
43 :デフォルトの名無しさん (ワッチョイ 62ad-aQbW) :2024/04/08(月) 04:42:24.97 ID:1vwt4prT0.net 日付(2024/01/01)のセルをVBAのRange("A1").Valueなどで取得すると、勝手に2024/01/01 (月)って曜日の文字列が追加されます。 曜日なしで取得する方法をご存じの方いましたら教えてください。 曜日がついているせいでDateとして扱えず困っています。 Dim d As Date d = CDate(Range("A1").Value) '2024/01/01 (月)が入ってるため これでエラーが出ます。 2024/01/01 01:00:00のように時間が入っている場合は2024/01/01 (月) 01:00:00になります。 NumberFormatLocalでフォーマットを指定してもダメでした。 取得するセルの書式設定は日付でユーザー定義ではないです。 最終手段の文字列を加工するのはなしでお願いします。
44 :デフォルトの名無しさん :2024/04/08(月) 07:42:44.65 ID:TVRO53b8d.net >>43 Dim d As Date d = CDate(DATEVALUE(Range("A1").Value))
45 :デフォルトの名無しさん :2024/04/08(月) 14:05:35.40 ID:nl9i5mBy0.net >>43 試してみたけど、この3行はどれもエラーにならず同じ結果になった d = CDate(Range("A1").Value) d = Range("A1").Value d = Range("A1") セルA1の内容は本当にシリアル値か? OSやOfficeは日本語版か? ロケールは日本になってるか? シリアル値ならそのままDate型に代入できるかららCDateで変換するのは無駄 A1セルの書式を標準に変えたらどんな表示になるか確認
46 :デフォルトの名無しさん :2024/04/08(月) 14:31:02.66 ID:bhILccJZ0.net >>43 試したけど自分も再現しない。 そちらで新しいブックを作って同じ事を試したら再現する?
47 :デフォルトの名無しさん :2024/04/09(火) 13:20:50.97 ID:CNAyRCwJM.net すみません。初心者です。調べてもわからなかったので質問します。urlのようにまず一週間分の表を作って 一週間ごとにオートフィルすれば表がつくれるのですがそれをマクロでやりたいです。よろしくお願いいたします
48 :デフォルトの名無しさん :2024/04/09(火) 13:30:27.56 ID:CNAyRCwJM.net https://tadaup.jp/2205c27d6.png これでお願いいたします
49 :デフォルトの名無しさん :2024/04/09(火) 13:31:59.88 ID:+lYdM27Td.net 質問とは
50 :デフォルトの名無しさん :2024/04/09(火) 13:32:38.30 ID:CNAyRCwJM.net ボタンを配置して押すごとに一週間分作成という風にしたいです。
51 :デフォルトの名無しさん :2024/04/09(火) 13:34:22.65 ID:CNAyRCwJM.net >>49 誠に勝手ながらコードを教えて欲しいです
52 :デフォルトの名無しさん :2024/04/09(火) 14:44:25.19 ID:EBugvdEwM.net >>47 Sub 全自動で表を作るMacro1() Dim da As Date da = "1/1" 'この日からスタート ro = 2 For we = 1 To 52 '52週間分作る Cells(ro, 3).Resize(1, 3) = Array("a", "b", "c") For lo = 1 To 7 Cells(ro + lo, 2) = da da = da + 1 Next Set ra = Cells(ro, 2).Resize(8, 4) ra.Borders(xlEdgeLeft).LineStyle = xlContinuous ra.Borders(xlEdgeLeft).Weight = xlMedium ra.Borders(xlEdgeRight).LineStyle = xlContinuous ra.Borders(xlEdgeRight).Weight = xlMedium ra.Borders(xlEdgeTop).LineStyle = xlContinuous ra.Borders(xlEdgeTop).Weight = xlMedium ra.Borders(xlEdgeBottom).LineStyle = xlContinuous ra.Borders(xlEdgeBottom).Weight = xlMedium ra.Borders(xlInsideVertical).LineStyle = xlContinuous ra.Borders(xlInsideVertical).Weight = xlMedium ra.Borders(xlInsideHorizontal).LineStyle = xlContinuous ra.Borders(xlInsideHorizontal).Weight = xlMedium ro = ro + 8 Next Range("B:B").Font.Name = "MS 明朝" Range("C:E").Font.Name = "MS ゴシック" Range("B:E").Font.Bold = True Range("B:B").NumberFormatLocal = "m月d日 (aaa)" End Sub
53 :デフォルトの名無しさん :2024/04/09(火) 15:00:14.82 ID:CNAyRCwJM.net >>52 ありがとうございます。大変申し訳ありません。
54 :デフォルトの名無しさん :2024/04/09(火) 16:35:36.48 ID:CNAyRCwJM.net >>52 すみません。これでも大丈夫ですがマクロ1回実行するごとに7日分つくりたいです。わがまますみません。
55 :デフォルトの名無しさん :2024/04/09(火) 17:25:50.64 ID:GvF1xxBu0.net >>54 Sub 一週間ずつコピペ追加Macro1() ro = Cells(Rows.Count, 2).End(xlUp).Row Cells(ro - 7, 2).Resize(8, 4).Copy Cells(ro + 1, 2) For Each c In Cells(ro + 2, 2).Resize(7, 1) c.Value = c + 7 Next Columns("B").AutoFit End Sub
56 :デフォルトの名無しさん :2024/04/09(火) 17:44:22.55 ID:CNAyRCwJM.net >>55 ありがとうございます!助かりました
18 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者