Excel総合相談所 130
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 09:11:43.15
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

前スレ
Excel総合相談所 129
https://find.5ch.net/search?q=excel

Excel VBA 質問スレ Part51
https://find.5ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ4
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
0736名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 23:17:51.90
Accessがドストライクな案件だけに惜しいな
テーブルに番号の組み合わせを入れて(扱う番号の拡張性も高い)
レポートに欄を作って印刷するだけ
0737名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 23:25:26.00
俺もシリアル番号の印刷とか片手間仕事でたまにやるわ
エーワンのラベル用紙に末尾を1から30まで変えながら印刷とか
以前はサインペンでせっせと書いてたらしい
0739名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 02:10:51.95
シート50枚作って、プリントは手作業で一括というのを
批判覚悟でPowerShellで書いてみたVBAよく知らないもので。

$excel=new-object -ComObject Excel.Application
$excel.Visible=$true
$wb=$excel.workbooks.add()
$ws=$wb.ActiveSheet();

for($i=0;$i -lt 50;$i++){
$n=$i*2+1
$left=$ws.Cells.Item(1,1)="$n"
$right=$ws.Cells.Item(1,2)="$($n+1)"
$ws=$wb.Sheets.Add()
}
$ws.Delete()
0740名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 02:11:35.92
このまま実行すれば行けるはず
0745714
垢版 |
2018/04/01(日) 11:03:26.32
>>708
ごめん間違ってた。直しました。
activeprinterのところはプリンター名直すか、削ってもオーケーです。
最大値100じゃなくて4にしてます。

Sub test()

Const START_NUM As Integer = 1 '数値の開始値
Const FINISH_NUM As Integer = 4 '数値の終了値
Const PRINTER_NAME As String = "Microsoft Print to PDF" 'プリンター


Dim i As Integer

i = START_NUM

Do Until i = FINISH_NUM - 1

Cells(1, 1) = (i * 2) - 1
Cells(1, 2) = Cells(1, 1) + 1

ActiveSheet.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False, ActivePrinter:=PRINTER_NAME

i = i + 1

Loop

End Sub
0746739
垢版 |
2018/04/01(日) 12:52:34.06
>>741
VBAスレッドじゃなくExcelスレッドなんでVBA関係なく参考になるから
(VBA使わないのはシートとプログラムは完全分離したい、中に埋め込みたく
 ないという思考あるもので)。

>>742
あたまに0入れたいとかあるかな〜と思って
left,right は質問のかたが何やってるかわかりやすいかなと思った次第。
0747739
垢版 |
2018/04/01(日) 12:56:50.11
>>742
考えてみたら、
あたまの0、これは計算時に省かれちゃうな。
ってことは、私のこの部分意味なかったってことやな。あちゃ。
0748745
垢版 |
2018/04/01(日) 14:00:26.09
まだ間違ってるわ。
do loop until i > FINISH_NUM \ 2
に直してください。
細かいこと言えばまだいろいろあると思うけど。
0749名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 17:00:32.36
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
pngファイルをwindowsフォトビューアーで開いた後、エクセルにコピーアンドペーストで貼り付けたいのですが、貼り付けることができません。
PowerPointには貼り付けれるのですが…
excelでは挿入機能を使うしかないのでしょうか。
いい方法があれば教えていただきたいです。よろしくお願いします。
0752名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 17:44:58.03
フォトビューアーのメニューにわざわざペイントあるんだから
それ使うんじゃまずい?
それ以外ならSnipping Toolではいかが?
0753名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 17:50:53.13
 >>749
前提を覆して申し訳ないが、
フォトビューワーは使わない。何故なら、同じ用な点でめんどくさいから
常にペイントで開くようにしてみては・
0754名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 19:09:15.96
>>753
フォトビューワーのメニューにペイントがあるから
直接でもフォトビューワー経由でもそれほど変わら
ないはずなんだけどね。
0755名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 20:07:50.24
>>750-754
ありがとうございます。ペイントを経由して貼り付けようと思います。
0757名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 21:36:52.21
順番が逆のような気がしないでもない
たぶん画像にデータを付加、またはデータに画像を添付したい
ってのが本来の目的な気がする  回り道して余計な仕事増やしているだけのような いや、ひとりごと
0758名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 01:51:37.01
【1 OSの種類         .】 職場環境:Windows7 自宅環境:Windows10
【2 Excelのバージョン   】 職場環境:Excel2016 自宅環境:Excel2010
※質問用のエクセルファイルは自宅環境で作成しましたが、実際に使用するのは職場環境です
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

https://dotup.org/uploda/dotup.org1500173.xlsx
上記のように、エクセルにてパレード図を作成しようとしています。
ピボットテーブルにて件数ごと降順で並び替え、かつ件数が1件のものはグループ化しその他として一番下にしたいです。
しかし、降順でソートしたあと、その他を一番下に持っていこうとすると、
降順ソートが解除され、その他以外順番がばらばらになってしまいます。
全部手動で並び替えるのはかなり手間なので、ピボットテーブルの機能で並び替える方法があったら教えてください。
ピボットテーブルを値として貼り付け、普通の表にすれば並び替えられますが、
ブックがごちゃつくし、あとでデータを追記する際煩雑になるので、可能ならピボットテーブルのまま並び替えたいです。
0759名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 04:19:37.56
みなさんフォントって何使ってますか?
最近だと遊ゴシック?
でも古い資料とかとの整合性とか考えると…セルの幅とか勝手に変わっちゃうし
でもMSPゴシックもなぁ…
0760名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 07:25:01.21
>>758
excel 2016
グループ化した後、列ラベル欄で手動並び替えにして自動並び替えを外す
件数の欄で降順に並び替え
その他ラベルで移動を選択して末尾へ移動
0762名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 07:38:09.60
>>759
游ゴシックは全く使わないようにしてるな
文字の高さがずれるのか見ててイライラする
エクセルだとひとつ前のメイリオUIにしてる
整合性は全く考えていないのでMS Pゴシックにはしていない
0763名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 14:33:21.85
>>762
メイリオの方が行間広くないです?
もうちょいまともな標準フォント用意して欲しい。

>>700
「もっと難しいのを」って書いてるから、多分冗談なんだろうけど。
この式、エラー出るよ。
0764名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 15:02:20.82
>>763
 
なんで >>700 はわざわざあんなに難しくしたのかが
これが意味不明なんだわ〜〜〜

真面目に書けば
奇数の判断なんて mod(n,2) が1なら奇数0なら偶数ってだけの話なのに。
わざとなんだろな
0765名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 15:52:45.53
>>761
>>762
ありがとう
フォントだけ変わってくれればいいのに行間が変わるからめんどくさい
この辺の対策しないところをみると、メイリオ以降の行間が正常で旧フォントが行間が妙に狭いという形にしたいのかな
meiryoKeConsoleだとセル幅も変わらずフォントだけ変更できるんだけど他人に渡すとバグっちゃうのかな?
あと、明朝は遊明朝にするとセル内の表示高さがバグるというか逆になっちゃうんですね
何かとややこしいなぁ…
0766名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 19:01:19.14
英語と日本語と混在だから、MeiryoUIくらいしか選択肢が無いんだよな
かなが正方形でなくなって、英字がちょっと広くなっちゃうけど

自分しか使わないファイルは、meiryoKeGothicにしてる
0767名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 20:04:50.19
>>766
meiryoKeGothicなんて今知った
0769名無しさん@そうだ選挙にいこう
垢版 |
2018/04/03(火) 07:39:32.78
>>760
できました
ありがとうございます
0770名無しさん@そうだ選挙にいこう
垢版 |
2018/04/03(火) 10:04:11.98
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelて各セル(行)の高さを表示する機能や関数はありますでしょうか?
表形式の文書を作っていて、各行の高さをセル内の行数にあわせて調整するものの、それを一目で見たいのです
例えば、A1セルには1行目の高さ、A2セルには2行目の高さ(以下繰り返し)のような感じで。
0772名無しさん@そうだ選挙にいこう
垢版 |
2018/04/03(火) 20:17:28.86
セルの表示形式で、例えば文字列の場合に赤字で表示するとき、
[赤]@
で出来るけど、この「赤」を英語にすることってできます?
要は、英語版のExcelだとどう設定すれば良いのか知りたいです。
0780名無しさん@そうだ選挙にいこう
垢版 |
2018/04/04(水) 06:37:40.97
>>766
meiryoUIに1票
ke知らないから見てみるわ
でもたぶん使い分けめんどいから結局UIな気がする

>>775
MS Pゴシック
なんであんな汚いフォント使うのか、まったく理解に苦しむ
0783名無しさん@そうだ選挙にいこう
垢版 |
2018/04/04(水) 08:02:47.76
MSPゴシックは解像度低くても読める事が優先のフォントだから高解像度だと煩すぎて駄目だな
逆に游ゴシックは高解像度特化だから低解像度だと読めん
メイリオはガキ臭くて仕事で使う気になれん
結局は游ゴシックにしてるわ
0785名無しさん@そうだ選挙にいこう
垢版 |
2018/04/04(水) 11:50:54.61
そおゆう四角四面でガチガチなガラパゴスビジネスリテラシーにうんざりしてんじゃね
「こうでなければならない」だの「これしかない」みたいなのをぶっ壊したいんだ
たかだか数十年の「当たり前」ってのはこれからの数十年もおんなじ
なんてのを否定しちまえばいいんだ  個人的な感想ですけど
0786名無しさん@そうだ選挙にいこう
垢版 |
2018/04/04(水) 17:49:59.79
>>775
今はデフォルトが遊ゴシックだよ

>>780
keはメイリオ改みたいなもの
パッチで改造するものだから普及はしてないので
自分で使うくらいにしかならない

>>784
結局それなんだよね
新しい環境でやろうにもレイアウトが全部崩れるってのが
まぁ全言語共通行間?みたいに変更したいようだけど
0787名無しさん@そうだ選挙にいこう
垢版 |
2018/04/04(水) 21:06:27.97
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
=TODAY()を使用するとなぜか昨日の日付になってしまいます。
やろうとしていることはカレンダーを作成し当日のみ条件書式でハイライトすることです。
途中何度か関数を入れ直すと過去の日付をハイライトしたり変な挙動をしつつ最終的には昨日で止まっています。
ちなみに計算は自動にしてます。
真新しいファイルで作成しました。
どなたか御存知でしたら教えてください。
0794名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 01:52:35.76
>>790
日付はctlr+で入力しオーフィルハンドルで下にひっぱっただけの極々単純な入力方法です

条件書式は=($A3=TODAY())
=$A3=TODAY()
両方試して変わりなかったので上を入れてあります
0795名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 01:54:54.37
>>793
nowは明日試します

vbaでdate関数、
そのカレンダーの日付をdateにしてみるという意味でしょうか?
vbaでやる意味を教えていただけると有り難いです
0796名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 02:05:37.19
ワークシート関数の戻り値と、vba関数(now、time、date)の戻り値が同じか試してみる。
通常は同じだろうけど、違えばそれが原因を探る手がかりになるでしょ。
0804名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 12:26:44.60
失礼、today()です。
それがきちんと表示されるなら、「条件付き書式」の設定がおかしいか、「条件付き書式」の不具合があると考えられます。
0805名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 12:35:05.93
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい・
【4 VBAでの回答の可否】 可
リネームして保存前にファイルサイズが400kb以上なら「ファイルサイズ超過」とメッセージボックスを出して、リネームをキャンセルする方法があればご教授願います。リネーム前にFilelenを使うとリネーム前のファイルサイズしか出ません。
0807805
垢版 |
2018/04/05(木) 22:18:16.81
リネーム後にファイルサイズ400kb以上でファイル名先頭に「サイズオーバー」
を追加は可能でしょうか?
リネーム後のファイル名を取得できないので、先に進めません。
1.yyyymmdd_hhmm(”D3")で保存。
2.1で保存したときにファイルサイズをチェック。
3.ファイルサイズをチェックして400kb以上なら、ファイル名先頭に「サイズオーバー」
を追加。

ご指導いただきますよう、お願いします。
https://u3.getuploader.com/taka1024/download/99
0808名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 22:47:28.73
>>805
素直に行ったほうがいいかもな

別名で保存
自分自身のファイルサイズを計測
サイズオーバーならメッセージ出して閉じるとか

というかどういう状況?フロッピーでも使ってるの?
0809名無しさん@そうだ選挙にいこう
垢版 |
2018/04/05(木) 23:49:41.94
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

あるセルの値が、常に、
  空白/ひらがな文字列/全角カタカナ文字列/半角カタカナ文字列
のいずれかです。また、文字列にはスペースが混じっています。

これを、どんな場合でも、スペースなしの半角カタカナ(空白は空白のまま)に変更したいです。
どのようにVBAコードを書けばいいのか教えてください。
よろしくお願いします。
0812809
垢版 |
2018/04/06(金) 00:56:02.55
ありがとうございます。

ひとつではなく、複数の変換作業を通じて実現するんですね。
勉強になりました。
0813名無しさん@そうだ選挙にいこう
垢版 |
2018/04/06(金) 02:13:42.79
>>812
どちらの場合もネスト(入れ子)して一気にやるより、段階踏んでやる方が簡単だしあとで修正しやすいです。

ワークシート関数でやるなら、
A列に元の文字列、B列にphonetic(A1)、C列にsubstitute(B1,略)、D列にasc(略)

VBAでやるなら変数myStringなどにして、
myString=replace(cells(i,1), 略)
myString=strconv(myString, 16 + 8)
cells(i,2)=myString

なお、どちらの場合もスペースが半角と全角の両方あるなら、削除を2回する必要がある。
0815813
垢版 |
2018/04/06(金) 03:24:31.26
そうですね、たしかに足し算みたいだし分かりにくいですね。
0817805
垢版 |
2018/04/06(金) 06:39:01.35
>>808
修理依頼票として使うのですが、メールフォルダが200MBしかないので、
PDFを添付されると、メールフォルダがいっぱいになってしまうのです。
0821名無しさん@そうだ選挙にいこう
垢版 |
2018/04/06(金) 11:04:34.46
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルにシート名を表示するシンプルな方法はないですか?

セルにシート名を表示させようと思ったんですが
ググるとCELL関数を使うものしか出て来なくて
そしてその方法がRIGHT関数とかLEN関数とかを組み合わせたりしてて
なんというか冗長に見えてしまうんです
もっとシンプルにシート名を取り出せないものでしょうか!
0823名無しさん@そうだ選挙にいこう
垢版 |
2018/04/06(金) 16:34:38.79
>>821
関数ひとつ作っとけばどう?
0825名無しさん@そうだ選挙にいこう
垢版 |
2018/04/06(金) 20:44:19.11
>>787です
結果ご報告です
=A7から下に向かってカレンダーを引っぱってました
条件書式は=$A7=TODAY()
しかしなぜか昨日の日付がハイライトされるのが困ってることでしたが、今日ファイルを開けてみると
条件書式が=$A8=TODAY()
になってました

結果的には条件書式が即時反映してなかったことが原因のようです
フォーマットを整えるなかでグループ化を沢山したり行挿入などをましたが、途中メモリ不足で一度強制終了しました
そういったなかで条件書式の表記は=A7~と見えるのに実際は=A8~で条件を取っていたという結果と思います
条件書式を=$A7=TODAY()にして解決

グループ化を沢山してExcelの挙動がおかしくなったのも初めてでした
0829名無しさん@そうだ選挙にいこう
垢版 |
2018/04/06(金) 22:23:50.56
そんなに単純にはならんよ
なるほどねーという工夫はあるけど

そういう例題
今月は何日まであるか、最もエレガントに示せ
■ このスレッドは過去ログ倉庫に格納されています

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