質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Subversion

Subversionは、使い方はCVSによく似た、CVS(Concurrent Versions System)を改良したバージョン管理ツールです。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

Q&A

解決済

4回答

10007閲覧

VBAをソース管理 大文字小文字の区別を無視したい

odataiki

総合スコア938

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Subversion

Subversionは、使い方はCVSによく似た、CVS(Concurrent Versions System)を改良したバージョン管理ツールです。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

1グッド

1クリップ

投稿2016/02/18 05:38

編集2016/02/19 02:46

Access2013 VBAでのプログラム開発を行っています。
vbac.swfというツールでAccess2013をテキストファイルとして出力
テキストファイルからAccess2013に取込、という運用をしています。

VBA特有の変数名の大文字小文字の自動変換サービスが発動し
変更を加えていなくても変数名が大文字 → 小文字に勝手に変更されたりします。
ソース管理ツール(GIT)では大文字小文字の判別を検知しますので
変更していないファイルも変更したように見えてしまい、困っています。

GITの中にテキストの「大文字小文字の区別をしない」というオプションがあればと思い調べていますが見つかりません。
どなたかご存知の方いらっしゃいませんでしょうか?
大文字小文字の区別なしが可能であればGIT以外のソース管理ツールでもOKです。

よろしくお願い致します。

追記:
teratailの使い方がまだ良くわかっておりませんので
ここに追記してもいいのかどうか・・・

m6u様、Aeona様
返信ありがとうございます。
ツールの名称を間違っておりました。申し訳ありません。
ツールはそこまで重要ではありません。
ツール内部でAccessを呼び出しているため、AccessVBAの機能が
大文字←→小文字を変換するという世話を焼いてくれる次第です。

勝手に変換する箇所が多すぎてテキスト化したときに初めて
変換されていることに気づく状況です。
例:あるモジュールコードの中に変数「SQL」が定義されていたとします。
dim SQL as String
SQL = "Select * From "
別のモジュールで変数「sql」が定義されると
dim sql as String
sql = "Select * From "
もともと大文字だったところも小文字に変換されてテキスト化されてしまうのです。

複数名で開発を行っていると環境によって
「SQL」となる人、「sql」となる人がいてどちらかに合わせても
誰かがソース管理で差分をチェックするとき苦労をする・・・
そこでソース管理ツール側で大文字小文字を判別しないような設定がないかどうか
という質問になります。

ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/18 06:19

vbac.swf はどこかで配布されているツールでしょうか、それとも内製ツールでしょうか。また、大文字小文字変換はどの場面で行われているのでしょうか。VBAコードをテキスト化した時なのか、VBAにテキストをインポートした時なのか。
Aeona

2016/02/18 06:53

vbac.wsfが正しい名前の様です。 Ariawase:GitHubに公開されたVBAライブラリ に含まれるツールの様ですね。 [Ariawase](https://github.com/vbaidiot/Ariawase)
guest

回答4

0

大文字小文字違いの変数名が自動的に変換されてしまうこと自体は避けられない仕様ですので、
そのような変数名は使わないように運用ルールを決めるが現実的ではないでしょうか。

問題になる変数名が少ないのであればそれこそ「使用済みの変数名と大文字小文字違いの変数名を使わないこと」という単純なルールだけでも良いと思いますし。
大文字小文字を変更したい場合には都度検討しても良いでしょう。

一箇所SQL→sqlに変更したつもりでも内部的には大量に変更されてしまっているのは事実ですのでそれは識別されてしかるべきです。

ただ本当に大文字小文字をまったく区別しなくて良いのであれば、インポート後のテキストを全て小文字(or大文字)に変換した内容をバージョン管理すれば良いでしょう。
(大文字小文字を区別しないとはそういうことでしょう……おすすめしませんが。)

※なお元の本文に合わせて「変数名」と書きましたが、定数名、関数名、プロパティ名等々の名前を含んでいますのでお気を付けください。

投稿2016/02/18 13:10

nakit

総合スコア410

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

odataiki

2016/02/19 02:43

nakit様 >インポート後のテキストを全て小文字(or大文字)に変換した内容をバージョン管理すれば良いでしょう。 VBAの仕様が大文字小文字を判別していません。 なので現在はテキストファイルを大文字/小文字を変換するプログラムを自作しようとしています。 ただ、その前にソース管理ツールの機能として大文字小文字を無視出来る設定があれば それを採用したいと思った次第でございます。 ご回答ありがとうございました。
guest

0

GitのdifftoolをWinMergeに設定するという方法が見つかりました。
http://hiro-syumi.ldblog.jp/archives/36344168.html

WinMergeには大文字・小文字を区別しないオプションがあるようですが、Gitでうまく使えるかは試してません。。

teratailのタグはVBAに加えて、Gitも付けた方が回答が集まると思います。

投稿2016/02/18 12:55

thom.jp

総合スコア686

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

odataiki

2016/02/19 02:45

thom.jp様 なるほど。 比較ツールを変えるという手法は思いつきませんでした。 ソース管理の手間が少なるなるか検討してみます。 tarailのタグの付け方にもコツがあるのですね。 ご回答ありがとうございます。
guest

0

Gitはあまり詳しくないのですが、
.git/configの設定項目があるらしいです。
設定項目がまんま"case無視"ですね。

ignore = 無視
capital case = 大文字/小文字

lang

1[core] 2 ignorecase=true

AVISI:Stop ignoring my capitals Git!(海外ブログより)

追記:
(以下、片手間翻訳 間違ってたらごめんなさい)

lang

1[gitにソースコードで大文字/小文字を厳密に区別させないようにするには?] 2Jan Hudecさんの回答: 3えっと、もちろん、解決方法はあります。 4(原文のまま)もし首を吊りたいなら、gitは快く1解決策(2十分なコツ、ヒント)を提供してくれます。 5 6Git はそれ自体が内容物を調べますが、その中身にまでは注意していません。 7大文字も小文字も別のバイトデータとしてエンコードされます。 8 9しかしながら、 gitはとても拡張性があります。 10ディスクからのファイル読み込み時や差分検知時、それとマージ時にも 11カスタムフィルターでGitに示すことができます。 12 13もし"diff"と"merge"の処理の中で大文字/小文字を維持し、差分検知を無視したいなら、 14"diff"と"merge"ドライバーを継承してカスタマイズする必要があります。 15[gitattributes(5)]の中の"diff"を検索してください。 16 17 もし、すべての文字を大文字か小文字のどちらかへ平準化したいなら、 18"read"と"write"のフィルタを継承する必要があります。("clean"と"smudge"から呼び出されます。) 19[gitattributes(5)]の中の"filter"を検索してください。 20そして、それを"gitattributes"メカニズムの該当ファイルに適用する必要があります。

原文:stack overflow:Making git case-insensitive to source code?より

投稿2016/02/18 13:15

編集2016/02/19 04:25
Aeona

総合スコア396

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

odataiki

2016/02/19 02:39

Aeona様 .git/coinfig のignorecase はファイル名の大文字小文字の変化を無視するという意味でして、 gitでは(その他多くのソース管理ソフトでそうですが)テキストファイルの中身の大文字小文字の中身は無視しないのが主流なようでして困っておりました。 ご回答ありがとうございます。
guest

0

自己解決

今回の件はエクスポートしたテキストファイルを小文字に変換するプログラムを自作することに致しました。
実際に運用してみると幾つか課題がありましたが
一つ一つクリアして現在は当初の目的が達成できましたので自己解決とさせて頂くことに致します。

ご興味を持ってご覧頂いた皆様ありがとうございました。
特にご回答頂いた皆様には貴重なお時間を頂きありがとうございました。

投稿2016/04/01 13:42

odataiki

総合スコア938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問