Excel総合相談所 72
at BSOFT
1:名無しさん@そうだ選挙にいこう
08/07/11 17:39:04
Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-10あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
URLリンク(www.google.co.jp)
前スレ
Excel総合相談所 71
スレリンク(bsoft板)l50
2:名無しさん@そうだ選挙にいこう
08/07/11 18:04:06
▼━質問時の注意・決まり事━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能でExcelに関係ないことも出来ます。
Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介依頼はスレ違い。ここは技術的な質問のみで。
3:名無しさん@そうだ選挙にいこう
08/07/11 18:05:07
★ルールを無視すると…
>>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.>>1★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
4:名無しさん@そうだ選挙にいこう
08/07/11 18:05:47
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する (プラグイン)
・ 罫線幅の自由指定
・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
・ 1セルを分割 (分割したいセル以外を結合)
5:名無しさん@そうだ選挙にいこう
08/07/11 18:06:31
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。
また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。
>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
6:名無しさん@そうだ選挙にいこう
08/07/11 18:07:04
「路上で揉めるのも目立ちます。9800円のラブホに入りますか?」
「はい」 「いいえ」
7:名無しさん@そうだ選挙にいこう
08/07/11 18:07:04
||
|| ━ 質問のしかた ━
||
|| ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
|| ★2 要望は具体例や図を使って明確かつ具体的にしる。
|| ★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
|| ★4 質問テンプレ(雛形)は必須ではないが、
|| OSやExcelのバージョン、VBAの可否などは必須情報。
||
|| ∧ ∧ 。
|| ( ,,゚Д゚)/ ジュウヨウ!! E[]ヨ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/  ̄ ̄ ̄ ./| ________________
| ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ は〜〜〜〜い /
∧ ∧ ∧,,∧ ∧ ∧
( ,, ∧▲ ミ ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
@(_(,,・∀・)@ ( *)〜ミ_ ( ,,)
@(___ノ 〜(___ノ 〜(___ノ
エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。
【質問不可】Excel総合相談所スレの雑談・議論スレ2
スレリンク(bsoft板)
8:名無しさん@そうだ選挙にいこう
08/07/11 18:07:42
【 このスレの登場人物 】
┌─質問者──────
どこにでもいるごく普通の初心者だったり
会社で上司に無理難題を押しつけられて困っている人だったりする。
たまに学生が宿題を持ち込んでくることも。
┌─回答者──────
テンプレを使わないと無視したり、質問を小出しにするとキレたりするくせに
自分は回答を小出しにして優越感に浸りニヤニヤしている嫌なヤツ。
┌─自称回答者─────
質問者を煽ったり、回答者を煽ったり、とにかくスレを引っかき回すだけで
何の役にも立たない賑やかし。単なるヒマ潰しでこのスレを見ている。
┌─VBA厨 ──────
VBAは万能と信じ、どんな単純な問題もついVBAで解いてしまう。
Module1がデフォルトで挿入されている世界を夢見るが、いまだ実現していない。
その実態はほとんどが理系の(元)学生。ピボット厨に目の敵にされている。
┌─ピボット厨─────
ピボットテーブルの機能が強力すぎるため、なんでもできると錯覚している。
口癖は「データを正規化して出直せ」「ピボッと参上ピボッと解決」など。
弱点は大嫌いなVBAを使わないとテーブルのリアルタイム更新ができないこと。
┌─啓蒙先生─────
ピボット厨一派の過激派。Excelはピボットテーブルだけのためにあり、
それ以外の機能はワークシート関数すら不要と言い切る。ピボットテーブルで
解決できない質問からは威嚇しながら逃げる。最初から出てこなきゃいいのに。
┌─そのほか─────
ワークシート関数厨……何重にも入れ子になった複雑怪奇な数式を作り出し、
関数だけでどんな問題も解いてしまう。たまに自分でも何をやっているか
わからなくなる。悩みは数式バーが1行しかないこと、頭が薄くなってきたこと。
配列数式厨……意外と使えるやつだが滅多に出てこない、というか出番がない。
極めてマイナーな存在。見かけたらその日はいいことがあるかも。
ナレーター……このわたくし。みなさんよろしく。
9:名無しさん@そうだ選挙にいこう
08/07/11 19:38:06
三重県民乙
10:名無しさん@そうだ選挙にいこう
08/07/11 21:15:11
>>8
先生、
テンプレ使わなくてもキレないけど、必要な情報が出てないと無視するというか回答を控えざるを得なく
VBAは万能だと信じてるというか知っているが、同時に「万能=全ての状況で最適」では無いことも知っており
ピボットも使うが、なんでも出来るとは錯覚しておらず、関数式では作業セル使って個々の式をシンプルにするのが好きだが
1つの式でとか作業列使わずにとか言われれば、数重ネストも配列数式も使い出す漏れは、何に該当しますか?
11:名無しさん@そうだ選挙にいこう
08/07/11 21:37:52
なんというウザさ
12:名無しさん@そうだ選挙にいこう
08/07/11 21:42:54
>>9
なんでも言われたとおりに答えるやつはヴァカです。
ちゃんと啓蒙しましょうね。
13:名無しさん@そうだ選挙にいこう
08/07/11 22:03:28
>>10
自己満の役立たずと言います。いてもいなくても同じなので呼ばれ方を気にする事もないよ。
14:12
08/07/11 22:09:09
アンカーミスったよ。
>>9ごめんな
15:名無しさん@そうだ選挙にいこう
08/07/11 22:26:07
前スレ995がふがいないので、ずれてない表を作ってやったぞ
日付 1日 2日 3日 4日 5日 6日
走行距離 15km 20km 30km 20km 30km 15km
給油 5 20
燃費 A B
A=(15+20)/5
B=(30+20+30+15)/20
俺からのアドバイスとしては、まず、横じゃなくて縦に並べるべき。
それから単位はいちいち入れずに数字だけを並べた方がいい。例↓
1 15
2 20 . 5 A
3 30
4 20
5 30
6 15 20 B
16:名無しさん@そうだ選挙にいこう
08/07/11 22:32:12
ぶっちゃけ、その式じゃ燃費は求まらない
17:名無しさん@そうだ選挙にいこう
08/07/12 05:10:44
R3C2 の値はR2C3、R4C3 の値はR3C4、のように、m行n列のセルがn行m列を参照するようにするには、
どういった式にすればいいのでしょうか?
でたらめでエラーになる式ですが、なんとなくイメージはこんな感じで
=R( COLUMN() )C( ROW() )
要は、
ABCDEF
A×
B ×
C ×
D ×
E ×
F ×
のような形式の表で、
右片側を埋めてある状態で残りの空白を自動的にコピーしたいのです。
18:名無しさん@そうだ選挙にいこう
08/07/12 06:21:37
>>17
勝敗表みたいなもんかな?
=INDIRECT(ADDRESS(COLUMN(),ROW()))とかでいけんじゃね?
19:名無しさん@そうだ選挙にいこう
08/07/12 12:11:45
>>15はアホか?
ここの回答者どもは燃費の計算もできないの?
20:名無しさん@そうだ選挙にいこう
08/07/12 13:08:16
燃費を計算するには給油量じゃなくて消費量が必要。
必ず満タン給油なら給油量=消費量になるが、今までの質問内容から、これがちょっと怪しい。
現時点ではデータの素性が明記されていないので計算可能かどうかは不明。
21:名無しさん@そうだ選挙にいこう
08/07/12 13:08:38
>>18
ありがとうございます!
できました。
22:名無しさん@そうだ選挙にいこう
08/07/12 16:10:18
>>19
だったらどうすりゃ良いか教えてくれよ
あんた自信あんだろ、感心するような解答見せてくれ
それとも、チャチャ入れるだけで全力使い果たしたのか
23:名無しさん@そうだ選挙にいこう
08/07/12 16:39:19
>>22
中途半端な知ったか君は無理して回答しなくてもいいんだよ。
24:名無しさん@そうだ選挙にいこう
08/07/12 16:54:29
噛み合わないなあw
ひょっとして懐かしの人口無能同士?
25:名無しさん@そうだ選挙にいこう
08/07/12 16:56:06
>>22
常に満タンで給油しているか、十分長い計測期間のデータであれば燃料の給油量と消費量はほぼ等しいと考えられるから、
燃費=走行距離÷給油量
ただし給油が満タンとは限らず、計測期間が短い場合にはこの近似は成り立たない。
26:名無しさん@そうだ選挙にいこう
08/07/12 17:02:23
>>24
>>22は>>15の子じゃないの?
27:名無しさん@そうだ選挙にいこう
08/07/12 17:30:19
>>15
>>22
ところで、燃費の計算するのにデータを横向きでなく、縦に並べたほうがいいのはなぜなの?
28:名無しさん@そうだ選挙にいこう
08/07/12 17:48:55
聞くだけ無駄だろ〜
どうせ縦方向のが長いとかくだらない理由だろうからw
29:名無しさん@そうだ選挙にいこう
08/07/12 20:21:45
>>27
エクセルの構造上、データは縦に並べた方が処理しやすいし、
処理方法も多いから
>>19
君はどう思う?
30:名無しさん@そうだ選挙にいこう
08/07/12 20:27:52
データベースの基本だろ。
行はレコード、列はフィールドに対応する。
URLリンク(base.officehp.com)
データは、特別な理由が無い限り縦に並べるもんだ。
31:名無しさん@そうだ選挙にいこう
08/07/12 20:38:21
>16,19,24,26,28
この中で一番情けない人、だ〜れだっ
32:名無しさん@そうだ選挙にいこう
08/07/12 20:48:58
>>29
>>30
ところで、燃費の計算するのにデータを横向きでなく、縦に並べたほうがいいのはなぜなの?
33:名無しさん@そうだ選挙にいこう
08/07/12 20:59:22
>>30
なんでURLを完全に書かずに
http://…
なんて書いてるの?
34:名無しさん@そうだ選挙にいこう
08/07/12 21:01:54
>>32
あのねぼく、目的は関係ないんだよ。
データの配列方向は縦でも横でも本質的な違いはなく、ぶっちゃけどっちでもいいんだけど、
何かしら統一された記述ルールがあった方がデータベースの設計効率が良くなるの。
道路が右側通行か左側通行か、どっちがいいかって言うのと同じ程度のこと。
ほかの人と同じにしといた方が都合がいいのよ。
35:名無しさん@そうだ選挙にいこう
08/07/12 21:03:31
>>34
やっと正解にたどり着いたね。
36:名無しさん@そうだ選挙にいこう
08/07/12 21:04:56
びっくりするほど頭悪いのに上から目線で見たがるのなあ
なんかもう感心するわ。すげーなあんた
37:名無しさん@そうだ選挙にいこう
08/07/12 21:07:42
>>36
正直言って君たちの事が低く見えている。
38:名無しさん@そうだ選挙にいこう
08/07/12 21:08:03
ああ、>>8の人か。お大事に。
39:名無しさん@そうだ選挙にいこう
08/07/12 21:13:03
このスレおもろいな。もっとやれ。
40:名無しさん@そうだ選挙にいこう
08/07/12 21:17:12
r;;;;ミミミミミミヽ,,_
,i':r" `ミ;;,
彡 ミ;;;i
彡 ⌒ ⌒ ミ;;;!
,ゞi" ̄ フ‐! ̄~~|-ゞ,
ヾi `ー‐'、 ,ゝ--、' 〉;r'
`,| / "ii" ヽ |ノ おまえら、もうすぐサマータイムくるから。
't ト‐=‐ァ / よかったなぁ、サビ残増えるぞサビ残。
,____/ヽ`ニニ´/
r'"ヽ t、 /
/ 、、i ヽ__,,/
/ ヽノ j , j |ヽ
|⌒`'、__ / / /r |
{  ̄''ー-、,,_,ヘ^ |
ゝ-,,,_____)--、j
/ \__ /
| "'ー‐‐--
41:名無しさん@そうだ選挙にいこう
08/07/12 21:20:02
啓蒙先生のお小言にも耳を傾けるべきだよ。
ここの回答者のレベルが低いのは事実だと思う。
前スレの不等号のやつなんかありえない。
42:名無しさん@そうだ選挙にいこう
08/07/12 23:31:09
Excelがいくらバージョンアップしても「最大行数>>最大列数」の理由を考えてみるといいよ。
縦横どっちでもいいんならワークシートは「最大行数=最大列数」の正方形でもいいはずだよね。
43:名無しさん@そうだ選挙にいこう
08/07/12 23:33:28
データを縦に並べる意味、それは・・・
ピ ボ ッ ト テ ー ブ ル ! !
これ以外あり得ないw
44:名無しさん@そうだ選挙にいこう
08/07/12 23:51:48
>>42
その理由とは?
45:名無しさん@そうだ選挙にいこう
08/07/13 01:23:13
>>42
別に正方形でもかまわないわけなんだが。
ほんとに考えてる?
啓蒙のいうこのスレの頭の悪さってこういうことなのかな。
>>43
燃費計算をピボットテーブルでやるのはありだね。
その場合はデータを縦に並べるのがいいといえるな。
46:名無しさん@そうだ選挙にいこう
08/07/13 04:55:29
>>34は明らかに間違ってる
47:名無しさん@そうだ選挙にいこう
08/07/13 05:07:23
問題
A列に外国語の単語が入っている。ときどき2語以上の句も混じっている。
この状態で、つい打ち込んでしまった前後の半角スペースだけを取り除いて
B列に表示するにはどうしたらよいか。
48:名無しさん@そうだ選挙にいこう
08/07/13 07:34:25
>>47
1、前後の半角スペースを取り除いたら単語がくっつくけどいいの??
2、半角をB列に移動するってこと?移動しても表示はできないけど?移動する意味は?
3、A列から半角スペースを取り除くだけでよかったなんて言わないよね?
これって宿題ですか?
49:名無しさん@そうだ選挙にいこう
08/07/13 07:35:48
>>47
Trim
50:名無しさん@そうだ選挙にいこう
08/07/13 08:33:24
いつからだ、ここが、ガキの溜まり場になってんのは
そろそろ夏厨が湧いて来るから、収拾付かないぞ!!
51:名無しさん@そうだ選挙にいこう
08/07/13 08:53:07
自己紹介乙
52:名無しさん@そうだ選挙にいこう
08/07/13 08:59:36
本当だなw
Q&Aの場と言うよりは、自己紹介の場になってるなw
53:名無しさん@そうだ選挙にいこう
08/07/13 10:27:43
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2000・2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Excel VBA WorkSheet Undo beforesaveなど
複数のワークシートがあるブックで特定のシートを更新した時にそのシートにのみ
更新日などの情報を指定のセル(どこでも可)に表示する方法はありますか?
現在はbeforesaveでブックを保存するときにシート2のA4に表示させていますが
シート3だけ更新したときでも当然ながらシート2の日付も変更されてしまいます。
条件として、編集中にマクロで表示させるのは元に戻すことができなくなるのでなしでお願いします。
(WorksheetChangeでやってみました)
よろしくお願いいたします。
54:名無しさん@そうだ選挙にいこう
08/07/13 10:38:51
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 一応
【4 VBAでの回答の可否】 可
複数のワークシートがあるブックで
ワークシートを一枚ずつめくって規定の作業を行い
最後まで終わったら終了するマクロとか出来ませんか?
アクティブシート内の編集程度でしたら組めるので参考にしたいです
55:名無しさん@そうだ選挙にいこう
08/07/13 11:27:02
>>48
日本語を理解できない方は無理に回答しようとしなくていいんですよ。
56:名無しさん@そうだ選挙にいこう
08/07/13 12:27:23
ってか、質問するやつも簡潔に質問しろよ。
たとえば「前と後ろのスペースを取るにはどうしたらいいですか?」とかね。
答えはすでに出てるけど=TRIM(A1)だが。
57:名無しさん@そうだ選挙にいこう
08/07/13 12:29:36
>>56
それじゃ全角スペースも取り除くから違うんじゃね?
58:56
08/07/13 12:45:31
>>57
そういう引っかけ問題なのか?
じゃぁ全角スペースを何かに置き換えておけばいいだろうね。
=SUBSTITUTE(TRIM(SUBSTITUTE(A1," ","@hoge@")),"@hoge@"," ")
とか
59:47
08/07/13 12:56:59
みなさんありがとうございます。
手入力によくある事態を解消する方法ということでした。
打鍵中に勢いで不必要な半角スペースを打っちゃうことがありますよね。
どこにあるか分からないそういう単語の前後にくっついた半角スペースを、
語と語の間の正当な半角スペースを傷つけることなく取り除き、
かつ、語と語の間の全角スペースもついでに拾い出して半角に直してしまうような式はできないかなという、
そういう相談でした。
trimは当然思いつくのですが、それだと語と語の間の正当なスペースも取れちゃいますよね。
仮に英語だとして、good moningもくっついちゃいます。それはまずい。
ではどうしたら?ってことでした。
60:名無しさん@そうだ選挙にいこう
08/07/13 12:59:14
Excelでやる必要はあるまい
Wordなら置換に行頭・行末記号が使えるからかんたん
61:名無しさん@そうだ選挙にいこう
08/07/13 13:02:06
申し訳ない。EXCEL指定なんです。
ほかのデータとの参照が張り巡らされているので、
できればエクセル上で処理したいんですね。
実際はA列に単語がずらーっと並んでいるだけのシートではないもので。
レスありがとうございました
62:名無しさん@そうだ選挙にいこう
08/07/13 13:02:46
>>59
ワークシート関数のTRIMは前と後ろのスペースは取るが、語と語の間のスペースは取らんだろ?
63:名無しさん@そうだ選挙にいこう
08/07/13 13:03:42
>>62
!すぐに確認してきます。
64:名無しさん@そうだ選挙にいこう
08/07/13 13:06:24
>>62
お!解決しました。ありがと!
65:62
08/07/13 13:07:58
正確には語と語の間のスペースが2個以上あれば、1個だけ残してあとは全部取っちゃうけどね。
66:名無しさん@そうだ選挙にいこう
08/07/13 13:17:31
>>65
なおよしです。あとは全角スペースを半角に置き換えちゃえばいいですね。
67:名無しさん@そうだ選挙にいこう
08/07/13 13:35:59
>>53
更新情報を管理したいんであれば、「ブックの共有」機能の「変更履歴の記録」を使えば済むかもね。
ちょいと大袈裟で細かくなってしまうけど。
そうでなきゃ、別のシートに記録だけ書きこむとか
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
Worksheets("変更記録").Cells(Sh.Index, 1).Value = Sh.name
Worksheets("変更記録").Cells(Sh.Index, 2).Value = Now()
Application.EnableEvents = True
End Sub
フラグ立てながら監視して、シート切り替え時と保存時に書きこむとか?
Private isChange As Boolean
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
sChange = False
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
isChange = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If isChange Then Call record(ThisWorkbook.ActiveSheet)
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If isChange Then Call record(Sh)
End Sub
Private Sub record(target As Worksheet)
target.Range("A1").Value = Format(Now(), "yyyy年m月d日")
End Sub
68:名無しさん@そうだ選挙にいこう
08/07/13 13:41:06
>>54
できると思うけど、どんな業務を想定してるのかがわかんないとなんとも。
アンケートみたいなのかな?それだったら、ハイパーリンクでシートを結ぶだけで
めくる感じでいけんじゃない?
で、最後のシートで「登録」ボタンみたいなの押すと、必須項目のセルに値が入って
いるかどうかをチェックして終了とか。
具体的な処理は、なにをさせたくて、何をさせたくないかによっていろいろ変わってくるんじゃないかな。
69:名無しさん@そうだ選挙にいこう
08/07/13 15:33:32
>>67さんありがとうございます。
別シートに書き込むのもありかと思いますが
今回は二番目に提示していただいた方法
>フラグ立てながら監視して、シート切り替え時と保存時に書きこむとか?
をベースとしてやらせていただきたいと思います。
助かりました。ありがとうございました。
70:名無しさん@そうだ選挙にいこう
08/07/13 18:36:26
【1 OSの種類 .】 WindowsXP SP2
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 excel プルダウン アクティブ カーソル&合わせる 等
フォームのリストボックスやコンボボックスはよく使用しますが
セルをアクティブにした途端にコンボボックスのように振舞うセルに出会いました。
ブック内を検索してもプルダウンに現れるリストがありません。
[データ]→[リスト]で作成できるリストは候補が必要で
少し違うのかなと感じています。
コレを使えたらブックをもっとシンプルに出来ると期待しています。
指南いただけないでしょうか。
71:名無しさん@そうだ選挙にいこう
08/07/13 18:39:18
>>70
データ→入力規則じゃね?
72:名無しさん@そうだ選挙にいこう
08/07/13 18:42:00
何百もデータがあって
そのデータを別のシートの一部の場所に
一つずつ表示させたいんですができますか?
例えば年賀状の名前と住所の所だけ変えていく
みたいな感じです。
73:名無しさん@そうだ選挙にいこう
08/07/13 18:52:12
>>71
その通りです。
入力規則の使い方をググったところ見事同様のものが作成できました。
大変有難う御座いました!
74:名無しさん@そうだ選挙にいこう
08/07/13 19:05:30
>>72
リストはExcelでつくって印刷はwordで差し込み印刷をする
75:名無しさん@そうだ選挙にいこう
08/07/13 19:30:07
>>72
フリーソフトで「エクセルではがき作成」ってのがあるよ
中々の物です。参考にどうぞ
76:名無しさん@そうだ選挙にいこう
08/07/13 19:37:02
>>72
1つずつ表示、を詳しく説明しないと、
はがき印刷がらみのピンと外れのレスしかこないぞ。
77:名無しさん@そうだ選挙にいこう
08/07/13 20:29:23
>>74-76
ありがとうございます
解決しました
78:名無しさん@そうだ選挙にいこう
08/07/13 21:45:17
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否否
0:00の時表示しない方法はわかるのですが
入力されてないセルの合計を出すと#######と
表示されます。なにかよい方法ありますか?
79:名無しさん@そうだ選挙にいこう
08/07/13 21:48:38
>>78
セルの幅を広げる
80:名無しさん@そうだ選挙にいこう
08/07/13 21:57:32
>>78
セルの幅を広げても同じでした
負であるか、大きすぎる日付および
時間は######と表示されますとでます。
81:名無しさん@そうだ選挙にいこう
08/07/13 21:59:35
>>79の間違いでした
82:名無しさん@そうだ選挙にいこう
08/07/13 22:04:09
>>80
h:mm;;;
83:名無しさん@そうだ選挙にいこう
08/07/13 22:09:08
>>82
何も表示されませんでした
84:名無しさん@そうだ選挙にいこう
08/07/13 22:53:57
>>80
###の場合、[エラーチェックオプション]ボタンは表示されないし、
エラーチェックもスルーされるし、エラーのトレースも出ないし・・・?
> 負であるか、大きすぎる日付および時間は######と表示されます
ということだけれど、どこにどのようにそう表示されているのでしょう。
(念のため)セルの幅は自動で広げているのですか?
新しいブックで試してみても同様の症状になりますか?
85:名無しさん@そうだ選挙にいこう
08/07/13 23:33:31
>>84
たとえばA1に1:00、B1に2:00、C1=A1-B1ってして時間がマイナスになるようにしてみ。
セルの幅をどんだけ広げても###が表示されるから。
>>83
0:00を表示しなくさせる方法ってのを、どうやったのか詳しく書いて。
それによって対処方法が違ってくるから。
86:名無しさん@そうだ選挙にいこう
08/07/13 23:35:40
>>84
A1=8:00 B1=17:00 C1=B1-A1-A10(セルの書式h:mm;;)
A2=空欄 B2=空欄 C2=B2-A2-A10(セルの書式h:mm;;)
A10=9:00 C10=SUM(C1,C2)(セルの書式[h]:mm)
の様な式です
87:名無しさん@そうだ選挙にいこう
08/07/13 23:43:15
>>86
A1=8:00
B1=17:00
A10=9:00
なら
C1=B1-A1-A10
は0:00になるから、何も表示されなくて正解だと思うんだけど。
もちろんC2も空白になるし、C10も空白になる。それで合ってるんじゃないの?
88:名無しさん@そうだ選挙にいこう
08/07/14 00:02:12
C10の書式がh:mm;;なら空欄だけど、[h]:mmだと###になった。
[負の日付または時間は####と表示されます] と表示された。
>>85
サンクス!なったなった!
89:名無しさん@そうだ選挙にいこう
08/07/14 00:08:09
>>86
それはつまり、A10とC10は[h]:mm;;;にすればいいのでは
90:名無しさん@そうだ選挙にいこう
08/07/14 07:48:22
申し訳ない!教えてください。
その場合の セミコロン は、どういう役割を果たしているのでしょうか。
どういう状況で使われるものですか?
検索したのですがわかりませんでした。
91:名無しさん@そうだ選挙にいこう
08/07/14 07:57:05
>>90
正の数に対する書式 ; 負の数に対する書式 ; 0になった場合の書式 ; 文字列の書式
何も書かないと何も表示されなくなる
今回の場合、負の数はエラーになるし、当人の意向により0は表示したくないらしいので
2番目、3番目の書式に何も書かなかった。そのためセミコロンだけが連続する結果となった。
文字列を入力した場合の処理はなんとも書いてないので、セミコロンの最後の一つは
意味がない可能性もある。
92:名無しさん@そうだ選挙にいこう
08/07/14 11:55:11
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否 .】 否
セルA1にBOOKの名前(ファイル名)を表示させるような関数はありますか?
93:名無しさん@そうだ選挙にいこう
08/07/14 12:40:07
>>92
「名前を付けて保存」してから
=REPLACE(REPLACE(CELL("filename"),FIND("]",CELL("filename")),255,""),1,FIND("[",CELL("filename")),"")
先に式を入れちゃだめだよ。まず保存だよ。
94:名無しさん@そうだ選挙にいこう
08/07/14 13:24:20
>>93
=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
結果は一緒だけど
CELL("bookname",A1)やCELL("sheetname",A1)って使えるようにしてほしいんだけどなぁ・・
95:名無しさん@そうだ選挙にいこう
08/07/14 13:30:03
アンカーは態とか?
いるよねぇ、こういう奴
96:名無しさん@そうだ選挙にいこう
08/07/14 15:18:51
>>91
「Excel ユーザー定義 表示形式 セミコロン」、
という条件で検索をかけたとき、確かにそうした結果でしたのに、
そこまで頭が回りませんでした。
たとえが違うかもしれませんが、IF関数の""のような使い方ができるのですね。
ありがとうございました。
97:名無しさん@そうだ選挙にいこう
08/07/14 21:52:12
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 vba テキストファイル 複数開く
【前提条件】
・同一フォルダ内に、「Before」フォルダ・「After」フォルダ・「ツール.xls」ファイルがある。
・「Before」フォルダには、テキストファイルが格納されている。
・「Before」フォルダ内のテキストファイルの行頭は、必ず「AAA」・「BBB」のどちらかで始まる。
(複数行に渡る場合、各行の行頭が上記のようになっている)
・「After」フォルダには、「AAA」フォルダ・「BBB」フォルダが格納されている。
【やりたいこと】
1 「Befor」フォルダ内に格納されている全テキストファイルと同一名称のテキストファイルを、
「After」フォルダの「AAA」フォルダ・「BBB」フォルダ両方に作成する。
(ファイル内は空でよい)
2 「Befor」フォルダ内のデータを見に行き、
「AAA」で始まっている行は「After」フォルダの「AAA」フォルダ内に格納された同一名称のテキストファイルに、
「BBB」で始まっている行は「After」フォルダの「BBB」フォルダ内に格納された同一名称のテキストファイルにコピーする。
以上の処理を実現するためのコードをVBAで作成していますが、下記の「'エラーメッセージ」の行で、
「ファイルは既に開かれています」というエラーが出てしまいます。
どのようなコードを書けば、上記の処理を実現することができるのでしょうか。
よろしくお願い致します。
98:名無しさん@そうだ選挙にいこう
08/07/14 21:53:50
Sub FileMake()
Dim FileName As String, FileData As String
Dim no1 As Long, no2 As Long
Dim i As Long
FileName = Dir(ThisWorkbook.Path & "\Before\*.*")
Do While FileName <> ""
no1 = FreeFile
Open ThisWorkbook.Path & "\After\AAA\" & FileName For Output As #no1
Close #no1
Open ThisWorkbook.Path & "\After\BBB\" & FileName For Output As #no1
Close #no1
FileName = Dir()
Loop
99:名無しさん@そうだ選挙にいこう
08/07/14 21:54:21
FileName = Dir(ThisWorkbook.Path & "\Before\*.*")
Do While FileName <> ""
no1 = FreeFile
no2 = FreeFile
Open ThisWorkbook.Path & "\Before\" & FileName For Input As #no1
Do While Not EOF(no1)
Line Input #no1, FileData
If FileData Like "AAA*" Then
Open ThisWorkbook.Path & "\After\AAA\" & FileName For Output As #no2 'エラーメッセージ
Print #no2, FileData
Close #no2
ElseIf FileData Like "BBB*" Then
Open ThisWorkbook.Path & "\After\BBB\" & FileName For Output As #no2
Print #no2, FileData
Close #no2
End If
Loop
Close #no1
FileName = Dir()
Loop
End Sub
100:名無しさん@そうだ選挙にいこう
08/07/14 23:08:56
>>97
ここがまずい
> no1 = FreeFile
> no2 = FreeFile
FreeFile関数は「Openされていない」ファイルの番号を返すので、no1をOpenする前にFreeFileを呼んでしまうと
no2にも同じ値が入ってしまう。
対策としてはDo〜Loopの中にno2 = FreeFileを移す。
101:名無しさん@そうだ選挙にいこう
08/07/14 23:11:45
Loopの中に入れるのは、さすがに無駄が多いか。こっちのがいいかな。
修正前
no1 = FreeFile
no2 = FreeFile
Open ThisWorkbook.Path & "\Before\" & FileName For Input As #no1
修正後
no1 = FreeFile
Open ThisWorkbook.Path & "\Before\" & FileName For Input As #no1
no2 = FreeFile
102:名無しさん@そうだ選挙にいこう
08/07/14 23:13:42
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 重複セル
データの重複したセルと空白のセルを削除して行を詰めるには
どうしたら良いですか?
リンゴ リンゴ 2
リンゴ 2 みかん 1
みかん 1 ⇒メロン 3
メロン
メロン
メロン 3
103:名無しさん@そうだ選挙にいこう
08/07/14 23:19:52
>>102
オートフィルタ
104:名無しさん@そうだ選挙にいこう
08/07/14 23:24:11
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 書式
A〜E列の5列に1〜100まで合計500個の文字が入っています。
先頭の文字が全部同じなんですが、その先頭だけ文字の色を青くしたいんです。
セルにカーソルを入れて1っこずつやると日が暮れてしまうので、
なにか一発でドンと処理する方法はないでしょうか。
105:名無しさん@そうだ選挙にいこう
08/07/14 23:48:30
>>104
ない。部分的に色を付けるのはVBA使わないと無理。
106:名無しさん@そうだ選挙にいこう
08/07/15 00:00:15
>>105
そっすかあ。残念です。
マクロの自動記録でできないかなあと浅知恵発揮しましたけど、
駄目でした。自動記録あたりでなんとかなる方法はないでしょうか。
107:名無しさん@そうだ選挙にいこう
08/07/15 00:02:01
>>106
1個だけ色を付ける操作をマクロで記録して、あとはそれを500回繰り返すようにVBAを書けばいいだけだよ。
108:名無しさん@そうだ選挙にいこう
08/07/15 00:07:02
>>107
それが一個だけ色をつける記録が残らんのですよ。
残ってくれればそれは500回やるだけでも労力半減なんですけどねw
もしよかったらためしに記録してみてください。
私は、自動記録開始して、
セルにカーソル入れて、先頭の一文字を反転させて、
赤色ボタンを押して、エンターキー押して、記録終了ボタン押しました。
でも実行してもうまくいかない・・・・・・・・・・・・・・・
109:名無しさん@そうだ選挙にいこう
08/07/15 00:09:01
付け足すと、
実行するとセルの中の文字が全部赤・・・じゃなかった青になっちゃうんですよね。
カーソル入れて一文字だけ指定して、の部分が記録に残らないみたいです。
110:名無しさん@そうだ選挙にいこう
08/07/15 00:12:02
>>108
試しにやってみたら、全部で34行もあるマクロが記録されたよ?
111:名無しさん@そうだ選挙にいこう
08/07/15 00:13:46
>>110
あらあ。何が違うのかなあ。
それでほかのセルで実行しても先頭だけ色が変わります?
112:名無しさん@そうだ選挙にいこう
08/07/15 00:16:36
=LEFT(A1)で先頭1文字
=RIGHT(LEN(A1)-1)で残りの文字
に分割して、先頭1文字の列だけに色を付けるってのは駄目?
113:名無しさん@そうだ選挙にいこう
08/07/15 00:17:23
あ、できました。
セルじゃなくて、シートの上にある横長の白いところ、左端にfxって書いてる部分。
そこでカーソルを入れて色変えて保存したらできました。
これを編集して500回コピーすればいいんですよね
114:名無しさん@そうだ選挙にいこう
08/07/15 00:18:30
>>112
分割して先頭にだけ色をつけて、concatenateでつなぐってやってみましたけど、
くっつけるとそのセルの書式になっちゃうから、うまくいかなかったです。
レスありがとうございました。
115:名無しさん@そうだ選挙にいこう
08/07/15 00:20:00
>>111
ちゃんと変わるよ。
セルを選択する前の状態からマクロの記録を開始して、Enterを押して確定させてから記録の終了してる?
つーか、もうめんどくさいから答えを書いといてやる。
VBAだとたった5行、こんなに簡単なプログラムで色が付けれるんだよ。覚えて損はないと思うぞ。
Sub Macro1()
For Each C In Range("A1:E100")
C.Characters(Start:=1, Length:=1).Font.Color = vbBlue
Next C
End Sub
116:名無しさん@そうだ選挙にいこう
08/07/15 00:25:10
>>115
行った!と思ったけどだめでした。
繰り返してみたら、こんどは全部最初に記録したセルの内容に代わっちゃいました。
つまり全部同じデータになっちゃう。。。。。。。。
ということでありがとうございます。
それ試してみます。
117:名無しさん@そうだ選挙にいこう
08/07/15 00:27:41
>>116
マクロの最初に
ActiveCell.FormulaR1C1 = "なんとか"
って部分があるでしょ。それがセルの内容だから、その部分を削除しないとみんな同じになっちゃうよ。
118:名無しさん@そうだ選挙にいこう
08/07/15 00:27:42
>>115
感動していいですか・・・・・・・・・・・感動しました。
119:名無しさん@そうだ選挙にいこう
08/07/15 00:37:45
>>117
後学のために試してみました。
なんとか、の部分を削除して""だけにして実行したら、なくなっちゃいましたw
なんか理解ができてないみたいです。
とにかく目的を果たすことはできました。
もう3回ぐらいやって感動し続けてます。
マクロができると本当にいいですねえ。
ありがとうございました。
120:97
08/07/15 00:37:56
>>100
上手くいきました!
ありがとうございました。
121:名無しさん@そうだ選挙にいこう
08/07/15 00:41:52
>>119
データの部分だけじゃなくて、1行丸ごと削除するのよ
122:名無しさん@そうだ選挙にいこう
08/07/15 12:28:55
>>115
条件固定ならループ回す必要ないよ
Range("A1:E100").Characters(Start:=1, Length:=1).Font.Color = vbBlue
だけで、同じ結果な上に処理もループより遙かに高速
5行も使う必要無く、処理は1行、プロシージャ宣言含めても3行で済む
Rangeオブジェクトのメンバは、複数セルを対象に出来る物が多いから、覚えて損はないと思うぞ
123:名無しさん@そうだ選挙にいこう
08/07/15 13:52:55
すいません 前スレに質問したものの、答えを見る前にdat落ちしてしまいました。
どなたか、23-08時までのものを深夜として計算する方法をご存じないでしょうか。
(出勤20時・退社時間5時とか毎回違うのです)
124:名無しさん@そうだ選挙にいこう
08/07/15 14:18:05
>>123
終了<開始なら終了に+24hしてから計算(作業列でも、ifでも)
23時以前、深夜時間帯(23時以前開始で深夜時間帯終了・
深夜時間帯開始で深夜時間帯終了・深夜時間帯開始で32時以降終了)、
8(32)時以降と5つに列を分けて計算して合計するのが一番楽
23以前を例にすると
=if(開始時刻>=23/24,"",23/24-開始時刻)
って感じで
125:名無しさん@そうだ選挙にいこう
08/07/15 14:37:39
こんにちは、ちょっと質問テンプレにあてはまらなかったんでフリーで質問します。
こんな感じの表を使いたいんですけど
URLリンク(www.odnir.com)
Excelは全く素人なので無料テンプレートってありますか?探したんですけどなかなか合うものがなくて…
126:名無しさん@そうだ選挙にいこう
08/07/15 14:47:19
> なかなか合うものがなくて…
ドンピシャのものなんてそうそう有るもんじゃない。
ましてや>>125みたいに「計算表として不適切な構成」の場合は得にね。
127:名無しさん@そうだ選挙にいこう
08/07/15 16:14:47
>>126
> 計算表として不適切な構成
横からスマン。
確かに行も列も・・・。
こんな感じならOK?
URLリンク(pict.or.tp)
128:名無しさん@そうだ選挙にいこう
08/07/15 16:33:03
A1からI50の範囲に数式が色々入っており、それを行だけ相対参照で一つ下にずらし(列方向は絶対参照になっています)、
J1:R50の範囲にコピーペーストしたいと思ってます。
例としてA1には数式=sheet1!$A1が入っており、j1には=sheet1!$A2、S1には=sheet1!$A3と入力されるようにしたいのです。
このコピーペーストを横に27回分、28回目のコピーペーストからはA51セルから始まります。
これをおおよそ200回分繰り返します。
そして以下のマクロを考えたのですが、当方旧式のパソコンのため処理が重く困っています。
もっと軽くしていただくことは出来ないでしょうか?
Range("A1:I50").Select
Selection.Copy
Range("J2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("J1:R50")
Range("J1:R50").Select
Selection.Copy
Range("S2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("S1:AA50")
Range("S1:AA50").Select
Selection.Copy
Range("AB2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("AB1:AJ50")
Range("AB1:AJ50").Select
・・これで三回分です。現状、これを500回分作ってあります。分割しないと文字数オーバーなので分割までしてあります。
分かりにくい説明ですみませんが、よろしくお願いします。
129:名無しさん@そうだ選挙にいこう
08/07/15 17:17:05
>>126
そうですね〜
>>127
そうです!そんな感じです!
用は得意先ごとの粗利が分かるようにしたいんです。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5128日前に更新/103 KB
担当:undef