Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43 / 3841 ページ ←次へ | 前へ→

【81643】日付で表に自動入力
質問  amu  - 21/2/4(木) 5:44 -

引用なし
パスワード
   B表には365日一年分の日付が記入されています。
A表のC列には特定の日付をG列にはC列の日付に測定した数値をいれています。
A表G列の数値をB表の日付とリンクさせB表に自動入力させたいです。
・ツリー全体表示

【81642】Re:Private Sub Worksheet_Changeについて
お礼  TDS  - 21/2/3(水) 10:53 -

引用なし
パスワード
   ▼γ さん:おはようございます。
ご指導ありがとうございます。
貼りつけ後、処理させないようになりました。ありがとうございました。
・ツリー全体表示

【81641】Re:VBA do loop ネスト
発言  γ  - 21/2/2(火) 19:48 -

引用なし
パスワード
   投稿する際はコードをコピーペイストするようにして、
手打ちしないほうがよいです。
インプットミスの可能性があるものに、誰も時間を費やしたくないですから。

きちんと i = i + 1 が実行されているなら、
""になるまで、strに連結されていくはずですね。(+が連結演算子として)
ご自分でよく確認して下さい。
・ツリー全体表示

【81640】Re:Private Sub Worksheet_Changeについて
発言  γ  - 21/2/2(火) 19:44 -

引用なし
パスワード
   冒頭に
If Application.CutCopyMode Then Exit Sub
などというものを入れたらどうでしょうか。
・ツリー全体表示

【81639】Private Sub Worksheet_Changeについて
質問  TDS  - 21/2/2(火) 17:46 -

引用なし
パスワード
   Worksheet_Changeで、入力したデータを置き換える処理を作成しております。

そこで質問ですが、コピー→貼り付けた時は、Worksheet_Changeが実行されるのを回避したいです。ご指導宜しくお願いします。


Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Row = 2 And Target.Column = 21 Then '年月変更
    Exit Sub
  Else
    If (Target.Column > 37) Or (Target.Column < 4) Then Exit Sub
    If (Target.Row > 49) Or (Target.Row < 6) Then Exit Sub
    If Target.Row Mod 2 = 1 And Target.Column = 4 Then Exit Sub
  End If
 '---置換----
  keyin = StrConv(Cells(Target.Row, Target.Column), 1)
  If keyin = "K" Then
   Cells(Target.Row, Target.Column).Value = "休日"
  elseIf keyin = "NK" Then
   Cells(Target.Row, Target.Column).Value = "年休"
  End If
  Exit Sub
End Sub
・ツリー全体表示

【81638】VBA do loop ネスト
質問  おまん万次郎  - 21/2/1(月) 21:40 -

引用なし
パスワード
   VBAのdo loopで質問。
セルの一行目を取得した後、
二行目を取得し表示させるコードのつもりですが、
一行目しか取得できません。


Sub Main

Dim oSheet As Object
oSheet = ThisComponent.CurrentController.ActiveSheet


Dim str as String
Dim i as Integer

Do
Do
if oSheet.getCellByPosition(i,0).string = ""then
goto continue:
end if

str = str + oSheet.getCellByPosition(i,0).string + ":"i = i + 1
loop

continue:
if oSheet.getCellByPosition(i,1).string = ""then
exit do
end if

str = str + oSheet.getCellByPosition(i,1).string + ":"i = i + 1
loop

msgbox(left(str,len(str) -1))

End Sub

環境はリブレオフィスのculcなのでrangeは使用できません。
よろしくお願いします。
・ツリー全体表示

【81637】Re:既定のプログラムの設定を変える方法
発言  γ  - 21/2/1(月) 9:27 -

引用なし
パスワード
   補足です。

たぶんレジストリを変更する必要があるので、
SaveSetting ステートメント を使うことになると思いますが、
少なくともVBA初心者を名乗る人が取り組むことではないと思います。
どうしてもということなら、
レジストリーのキーや値をご自分で調査してください。
そうしたことが出来る人が実行すべきことだと思います。

また、レジストリ操作には危険を伴います。
最悪の場合、現在のシステムの動作が保証できないことが考えられます。

今回質問の操作は、毎日とかいった頻度で発生するものではありませんね。
頻度は極めて低いと思います。
そして、手作業で安全確実にできる方法があるんですから、そうすべきです。

なお、ExcelVBAの用途について基本的な誤解があるのではと懸念します。
VBAはPC操作全般、何でもできるわけではなく、
基本的にはExcel(Officeファミリー)を使った操作のうち、繰り返し発生したりするもの、
また、複雑な作業で誤操作を避ける必要があるもの、といったものに使うべきものです。
そうした理解の上にたって、表計算などExcel上の操作の省力化のために工夫するようにしてください。
・ツリー全体表示

【81636】Re:セル書式の線が引いてあるかを知りたい
お礼  TDS  - 21/1/31(日) 18:29 -

引用なし
パスワード
   ▼F-Rain さん、ご回答ありがとうございます。
教えていただいた内容で、実績データが作成できるようになります。
ありがとうございました。
・ツリー全体表示

【81635】Re:セル書式の線が引いてあるかを知りたい
回答  F-Rain  - 21/1/31(日) 16:03 -

引用なし
パスワード
   こんにちは。

罫線なしの場合、BorderオブジェクトのLineStyleプロパティには
xlLineStyleNoneが設定されているので、それを判定すればよいかと思います。

If Range("B3").Borders(xlDiagonalUp).LineStyle = xlLineStyleNone Then
MsgBox "右上り斜め罫線は無いよ"
Else
MsgBox "右上り斜め罫線は有るよ"
End If


If Range("B3").Borders(xlDiagonalDown).LineStyle = xlLineStyleNone Then
MsgBox "右下り斜め罫線は無いよ"
Else
MsgBox "右下り斜め罫線はあるよ"
End If
・ツリー全体表示

【81634】セル書式の線が引いてあるかを知りたい
質問  TDS  - 21/1/31(日) 12:47 -

引用なし
パスワード
   初めまして、よろしくお願いします。

1か月分の勤務表(予定)を作成しており、翌月に予定→実績を作成しております。
勤務変更がなければ、予定をコピーし、実績に張り付けて完成ですが。

勤務予定変更が発生したとき、セル書式の斜め罫線を赤色で×にしています。

VBAで、セル書式の斜め線(赤色)まではできましたが、
With Range("B3")
  .Borders(xlDiagonalDown).LineStyle = xlContinuous
  .Borders(xlDiagonalUp).LineStyle = xlContinuous
End With

実績を作成する時に、セルに斜め線があるかどうかの判定方法を
教えていただきたいです。
・ツリー全体表示

【81633】Re:既定のプログラムの設定を変える方法
発言  γ  - 21/1/31(日) 5:20 -

引用なし
パスワード
   ▼vba初心者 さん:
>お世話になります。
>まだVBA初心者でわからないことが多いですが、ご教示をいただきたいです。
>
>VBAで規定のプログラムを変更する方法はありませんか?
>
>IE→chromeのように。

よく分からないのですが、既定のブラウザを変更するということですか?
それとも、何かのコード(IEを使ったスクレイピングのコード)を
Chromeを使ったコードに変更するということですか?

前者は手でやれば十分ではないですか?
Excelは表計算ソフトですよ?
・ツリー全体表示

【81632】既定のプログラムの設定を変える方法
質問  vba初心者  - 21/1/31(日) 0:51 -

引用なし
パスワード
   お世話になります。
まだVBA初心者でわからないことが多いですが、ご教示をいただきたいです。

VBAで規定のプログラムを変更する方法はありませんか?

IE→chromeのように。

ご教示ください。
・ツリー全体表示

【81631】Re:n番目のシートから最後のシートまで...
発言  γ  - 21/1/30(土) 6:26 -

引用なし
パスワード
   返事をいただいたのは結構なことですが、少しだけコメントしておきます。
こうした場は、個人へのサポートだけの場ではありません。
回答コメントをもらってありがとう試しますで終わるのは残念です。
寄せられたコメントが有効だったのかどうか、
実際に試して何か気づきはなかったのか等を、
簡単で結構なので、閲覧している方に返していただきたいのです。
それが質問者ができる貢献だと思っています。
ギブアンドテイクでお願いします。
・ツリー全体表示

【81630】Re:別のExcelブックを閉じると、ユーザー...
お礼  稲垣  - 21/1/28(木) 18:05 -

引用なし
パスワード
   ▼γ さん:
>再現実験しましたが出来ませんでした。
>力及ばず、他の方からのコメントに期待しましょう。
お時間を頂戴し、ご検証いただきありがとうございました。
感謝いたします。
・ツリー全体表示

【81629】Re:別のExcelブックを閉じると、ユーザー...
発言  γ  - 21/1/28(木) 15:16 -

引用なし
パスワード
   再現実験しましたが出来ませんでした。
力及ばず、他の方からのコメントに期待しましょう。
・ツリー全体表示

【81628】Re:別のExcelブックを閉じると、ユーザー...
発言  稲垣  - 21/1/28(木) 10:29 -

引用なし
パスワード
   ▼γ さん:
>なかなか考えにくい現象ですね。
>念のため、
>>3.別のブックを閉じる
>のコードを提示してもらえませんか?
ご確認いただき、ありがとうございます。

>3.別のブックを閉じる
ですが、閉じる動作においてVBAを使用していません。
手動で閉じております。

その際、ユーザーフォームもなぜか一緒に閉じてしまいます。。。
・ツリー全体表示

【81627】Re:別のExcelブックを閉じると、ユーザー...
発言  γ  - 21/1/27(水) 22:43 -

引用なし
パスワード
   なかなか考えにくい現象ですね。
念のため、
>3.別のブックを閉じる
のコードを提示してもらえませんか?
・ツリー全体表示

【81626】Re:n番目のシートから最後のシートまで...
お礼  ct  - 21/1/27(水) 20:33 -

引用なし
パスワード
   ありがとうございます。
早速試してみます
・ツリー全体表示

【81625】Re:ユーザーフォームにおける日付検索に...
お礼  VBA初心者  - 21/1/27(水) 17:23 -

引用なし
パスワード
   ▼γ さん:
返信が大変遅くなってしまい申し訳ありませんでした。
おすすめして頂いた方法を試したところ、うまく検索することができました。
しばらくの間つまづいてしまっていたので本当に助かりました。
また、参考URLも非常に勉強になりました。
ありがとうございました。
・ツリー全体表示

【81624】別のExcelブックを閉じると、ユーザーフ...
質問  稲垣  - 21/1/27(水) 17:23 -

引用なし
パスワード
   お世話になっております。
当方、Office Professional Plus 2016を使用しています。

ユーザーフォームを表示・マクロの実行中に次の操作をしたいと考えています。

1.別のブックを開封
2.別のブックのセル内容を編集・マクロの実行等を実施
3.別のブックを閉じる

1.2.は操作可能なのですが、3.の際にユーザーフォームが同時に閉じてしまいます。

ユーザーフォームを表示・マクロの実行をしたまま、3.の操作をすることは可能でしょうか。
お手数をお掛けしますが、宜しくお願い致します。
・ツリー全体表示

43 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free